Как преобразовать строку в ObjectId в nativejs mongodb native driver?

Я использую родной драйвер mongodb в среде nodejs, и мне нужно преобразовать строку id в ObjectId, чтобы использовать его в моем запросе обновления, как я могу это сделать?

Ответ 1

с ObjectId (nodejs driver doc)

Когда у вас есть строка, представляющая объект BSON ObjectId (например, полученный от веб-запроса), вам необходимо преобразовать его в экземпляр ObjectId:

collection.findOneAndUpdate(
    {_id: safeObjectId(id)}, 
    {$set: newDoc}, 
    {returnOriginal: false}
)
.then(console.log, console.error)

с safeObjectId, определяемым как: (чтобы избежать возможного исключения

Ответ 2

var {ObjectId} = require('mongodb'); // or ObjectID Not Working

как упомянуто @caubub, не будет работать для меня.

Но когда я использую var ObjectID = require('mongodb').ObjectID; // convert string to ObjectID в mongodb, тогда я могу преобразовать строку в ObjectId в собственный диск nodejs mongodb.

Для справки посетите http://mongodb.github.io/node-mongodb-native/2.2/api/ObjectID.html