MongoDB:插入具有特定ID的文档,而不是自动生成的ObjectID
我需要使用Java在MongoDB上插入文档(使用特定ID代替自动生成的ObjectID)。
要插入一个文档或更新(如果存在),我尝试使用
findOne
搜索ID,如果不存在,则搜索insert
ID然后选择findAndModify
。它有效,但我不认为这是一种有效的方法,很费时间。有没有更好的方法来实现这一目标?要一次插入多个文档,我正在遵循此解决方案。但我不知道如何插入自定义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)
您只需要确保每个文档都是唯一的即可。
您还需要在中设置_id
,modifiedObject
否则将生成一个新的。
至于 ,只需通过提供_id
密钥为每个文档设置自定义ID 也可以。
以上是 MongoDB:插入具有特定ID的文档,而不是自动生成的ObjectID 的全部内容, 来源链接: utcz.com/qa/431852.html