javascript - 如果我有一个字符串形式的 mongo 文档 ID,我该如何将其作为 _id 查询?

标签 javascript node.js mongodb

如果我有一个字符串形式的 mongo 文档 ID,我该如何查询它作为 _id?

执行 .find({_id:'stringID'}) 是否可以正常工作,还是我需要先将其转换为 bson 对象?

最佳答案

你是说你有 ObjectId 的 24 位十六进制数字字符串?

假设这就是您的意思,大多数驱动程序都有办法获取字符串并将其转换为 ObjectId。在 JavaScript 中是:

.find({_id:new ObjectId("4f91bfcfaa7c5687a0c686d4")})

更新 对 Node native 驱动程序更有用(来自 https://github.com/christkv/node-mongodb-native 的文档):

// Get the objectID type
var ObjectID = require('mongodb').ObjectID;

var idString = '4e4e1638c85e808431000003';
collection.findOne({_id: new ObjectID(idString)}, console.log)  // ok
collection.findOne({_id: idString}, console.log)  // wrong! callback gets undefined

关于javascript - 如果我有一个字符串形式的 mongo 文档 ID,我该如何将其作为 _id 查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10253972/

相关文章:

node.js - 如何使用 nodejs 在 Redis 缓存中创建 LIKE 运算符搜索?

javascript - 我想根据 URL 创建多个命名空间,但我对 socket.io 感到困惑

python - 在 MongoEngine 中查询嵌入的文档列表

mongodb - mongos之间的负载均衡

javascript - 如何使用javascript确定文件的文件类型

Javascript函数解析顺序

javascript - nodejs,函数无缘无故跳转到完全不相关的行?

mongodb - 如何在 mongodb 中创建数据库结构以保存日期范围?

javascript - React Native 组件回调函数

javascript - $watch 在 Angular Modal 中不工作