2

我通常通过创建独特的“代码”来操作对象。(所以我用代码“test”创建了一个对象并使用objects.find({ code: "test" }).

我想知道是否可以简单地创建一个新对象,并获取其保存的对象,或者只是在保存后返回其 ObjectId?

如果我们可以这样做就好了: objects.save({ name: "Test Object" });

并得到{ ObjectId: "47cc67093475061e3d95369d", name: "Test Object" }回报。

有什么办法吗?

谢谢!

4

2 回答 2

2

这是你要找的吗?

> var record = {hello:"goodbye"};
> db.test.save(record);
> record;
{ "hello" : "goodbye", "_id" : ObjectId("4f90c9106aee6e21b4e55c65") }
于 2012-04-20T02:26:02.167 回答
1

我认为没有 API 可以从数据库中获取自动生成的 id,也没有真正的需要:

如果您的“代码”确实是独一无二的,您可以将其用作对象 ID。

 objects.save({ _id: "test" });

_id字段不必是 ObjectId 类型,它必须是唯一的。如果您已经有一些主键类型数据,则不必使用自动生成的 id。这样,您还可以保存一个索引。

如果要使用生成的 ObjectId,请在调用 save 之前自行生成:

ObjectId id = new ObjectId();   
objects.save({ _id: id, something: 12345 });
于 2012-04-20T02:09:56.393 回答