Хорошо, поэтому моя основная проблема заключалась в том, что я не смог получить _id документа, который я вставил, не будучи в состоянии проверить, был ли он обновлен / найден или вставлен. Однако я узнал, что вы можете создать свой собственный идентификатор.
id = mongoose.Types.ObjectId();
Chatrooms.findOneAndUpdate({Roomname: room.Roomname},{ $setOnInsert: {_id: id, status: true, userNum: 1}}, {new: true, upsert: true}, function(err, doc) {
if(err) console.log(err);
if(doc === null) {
// inserted document logic
// _id available for inserted document via id
} else if(doc.status) {
// found document logic
}
});
Обновить
API Mongoose v4.4.8
passRawResult: если true, передает исходный результат от драйвера MongoDB в качестве третьего параметра обратного вызова.