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

 dmcm0005 发布于 2023-02-04 12:40

我在一个环境中使用mongodb本机驱动程序,nodejs我需要将一个id字符串转换为ObjectId以在我的更新查询中使用它,我该怎么做?

2 个回答
  • 使用ObjectId(nodejs驱动程序文档)

    当您有一个表示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}
      );
    };
    

    2023-02-04 12:44 回答
  • var {ObjectId} = require('mongodb'); // or ObjectID Not Working
    

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

    但是当我var ObjectID = require('mongodb').ObjectID; // convert string to ObjectID在mongodb中使用时,我能够在nodejs mongodb native drive中将字符串转换为ObjectId.

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

    2023-02-04 12:44 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有