Я использую родной драйвер mongodb в среде nodejs
, и мне нужно преобразовать строку id
в ObjectId, чтобы использовать его в моем запросе обновления, как я могу это сделать?
Как преобразовать строку в ObjectId в nativejs mongodb native driver?
Ответ 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