MongoDB:插入具有特定ID的文档,而不是自动生成的ObjectID

我需要使用Java在MongoDB上插入文档(使用特定ID代替自动生成的ObjectID)。

  1. 要插入一个文档或更新(如果存在),我尝试使用findOne搜索ID,如果不存在,则搜索insertID然后选择findAndModify。它有效,但我不认为这是一种有效的方法,很费时间。有没有更好的方法来实现这一目标?

  2. 要一次插入多个文档,我正在遵循此解决方案。但我不知道如何插入自定义ID而不是objectID?

任何帮助将不胜感激

回答:

为了您的第一个问题的MongoDB有UPSERT所以

db.collection.update(

{query for id},

{document},

{upsert: true}

)

或在Java驱动程序中

yourCollection.update(searchObject, modifiedObject, true, false);

如果要设置自定义ID,只需_id手动设置密钥即可

yourBasicDBObject.put("_id",yourCustomId)

您只需要确保每个文档都是唯一的即可。

您还需要在中设置_idmodifiedObject否则将生成一个新的。

至于 ,只需通过提供_id密钥为每个文档设置自定义ID 也可以。

以上是 MongoDB:插入具有特定ID的文档,而不是自动生成的ObjectID 的全部内容, 来源链接: utcz.com/qa/431852.html

回到顶部