如果我有一个mongo文件ID作为字符串我如何查询它作为_id?

fan*_*ncy 9 javascript mongodb node.js

如果我有一个mongo文件ID作为字符串我如何查询它作为_id?

它能正常工作.find({_id:'stringID'})还是我需要先将其转换为bson对象?

Eve*_*man 24

你的意思是你有一个ObjectId的24位十六进制数字字符串?

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

.find({_id:new ObjectId("4f91bfcfaa7c5687a0c686d4")})
Run Code Online (Sandbox Code Playgroud)

更新为节点本机驱动程序更有用(来自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
Run Code Online (Sandbox Code Playgroud)