我在nodejs
环境中使用mongodb native driver,我需要将id
字符串转换为ObjectId,以便在更新查询中使用它,我如何才能做到这一点?
我在nodejs
环境中使用mongodb native driver,我需要将id
字符串转换为ObjectId,以便在更新查询中使用它,我如何才能做到这一点?
如果有一个表示BSON ObjectId的字符串(例如从web请求接收),则需要将其转换为ObjectId实例:
const {ObjectId} = require('mongodb'); // or ObjectID
// or var ObjectId = require('mongodb').ObjectId if node version < 6
const updateStuff = (id, doc) => {
// `ObjectId` can throw https://github.com/mongodb/js-bson/blob/0.5/lib/bson/objectid.js#L22-L51, it's better anyway to sanitize the string first
if (!ObjectId.isValid(s)) {
return Promise.reject(new TypeError(`Invalid id: ${id}`));
}
return collection.findOneAndUpdate(
{_id: ObjectId(id)},
{$set: doc},
{returnOriginal: false}
);
};