如何在 nodejs mongodb 本机驱动程序中将字符串转换为 ObjectId?

新手上路,请多包涵
阅读 505
2 个回答

使用 ObjectIdnodejs 驱动程序文档

当您有一个表示 BSON ObjectId 的字符串(例如从网络请求中接收到)时,您需要将其转换为 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}
  );
};

原文由 caub 发布,翻译遵循 CC BY-SA 3.0 许可协议

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

正如@caubub 所提到的那样,它对我不起作用。

但是当我在 mongodb 中使用 var ObjectID = require('mongodb').ObjectID; // convert string to ObjectID 时,我可以在 nodejs mongodb 本机驱动器中将字符串转换为 ObjectId。

参考访问 http://mongodb.github.io/node-mongodb-native/2.2/api/ObjectID.html

原文由 VIKAS KOHLI 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题