2016-01-12 3 views
-1

Я вставил документ в коллекцию опроса следующим образом:MongoDB вставка дает неправильный _id

poll.insert({ 
      'title':title, 
      'options':options, 
      'votedBy':{}, 
      'createdBy':theUser, 
      'date':date 
     },function(err,docs){ 
      res.redirect('/poll/'+ObjectId(docs._id)); 
     }); 

С res.redirect, то _id является «5694e3471baae48402d26196», а затем, когда я увидел _id документа вставлено , это «5694e3471baae48402d26195», ровно 1 разница в последней цифре. Если я использую console.log(ObjectId(docs._id)) перед res.redirect, идентификатор изменяется на 2 значения. Пожалуйста, объясните, почему он ведет себя таким образом.

ответ

0

docs._id уже является объектом ObjectId. Когда вы говорите ObjectId (docs._id), он считает это недопустимым параметром и возвращает новый ObjectId.

Если вы используете nodejs, просто сделайте res.redirect ('/ poll/docs._id.toHexString());

+0

Да, я использую nodejs. Спасибо! –