将字符串转换为MongoDB中的ObjectID

Jon*_*ark 21 codeigniter mongodb

我正在使用Codeigniter和MongoDB开发API.在数据库的某些部分,我以ObjectID格式而不是字符串保存了图像的ID.现在我得到了一个字符串格式的ID,我需要使用它来查询数据库.

如何将字符串"转换"为ObjectID以便我可以进行查询?

由此:

34234234234234234234
Run Code Online (Sandbox Code Playgroud)

对此:

ObjectID("34234234234234234234")
Run Code Online (Sandbox Code Playgroud)

UPDATE

我找到了解决方案.就这样做吧new MongoId('34234234234234234234');

jul*_*oup 23

您只需要从您的mongo中获取ObjectId函数.

ObjectId = require('mongodb').ObjectID;
Run Code Online (Sandbox Code Playgroud)

然后你就可以这样使用它:

ObjectId("34234234234234234234")
Run Code Online (Sandbox Code Playgroud)


Nic*_*lle 20

使用猫鼬:

var mongoose = require('mongoose');
var objectId = mongoose.Types.ObjectId('569ed8269353e9f4c51617aa');
Run Code Online (Sandbox Code Playgroud)

使用本机驱动程序(/sf/answers/1475361261/)

var ObjectID = require('mongodb').ObjectID;
doc._id = new ObjectID(doc._id); // wrap in ObjectID
Run Code Online (Sandbox Code Playgroud)

  • 使用本机驱动程序时,`ObjectID` 应该是`ObjectId`。 (2认同)

Kon*_*kov 6

http://api.mongodb.org/java/2.6.5/org/bson/types/ObjectId.html

在这里,您可以看到有一个带有单个String参数的构造函数ObjectId.那么,对你有用吗?


Ale*_*x K 5

如果您使用流星

var id = new Mongo.ObjectID("34234234234234234234");
Run Code Online (Sandbox Code Playgroud)