如何在不向MongoDB添加文档时创建最后一个ObjectId

时间:2014-01-22 13:26:54

标签: mongodb mongoid mongodb-.net-driver

我有两个系列(“公司”和“用户”),当我向“公司”系列添加一个新文档时(默认情况下为软件)我想在“用户”集合上创建一个新文档,其中一个新管理员用户,但此新用户必须与之前创建的“公司”集合中的新文档相关....

MS SQL 上的“选择@@ identity ”:P

示例数据结构:

Companies. _id = ObjectId("aaaa");
         . Name = "Company name";

Users. _id = ObjectId("uuuu");
     . Name = "admin"
     . CompanyId = ????

ObjectiId(“aaaa”)由Mongo在Collection.Update上定义和存储,存储在Users.CompanyId

此致

路易斯·佩德罗

2 个答案:

答案 0 :(得分:0)

而是使用MongoID(ObjectID),您可以使用自己的PK:

当您插入公司文档时,如果您明确声明名为'_id'的字段及其值,mongodb不会再次创建Object_id,您也可以将您声明的值存储在变量中,并重用它用于在Users集合中插入文档。

或者您可以在插入其后查找公司,查找最后一个插入,并推断系统生成的ID并重复使用。

希望有所帮助

答案 1 :(得分:0)

要添加到lese的观点,您可以使用下面的代码段来查找最后一个文档

db.companies.find({},{ “_编码”:1})。跳过(db.companies.find()计数() - 1);