MongoDB:插入具有特定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 也可以。

解决方法

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

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

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

任何帮助将不胜感激

猜你在找的技术问答相关文章

如何检查配对的蓝牙设备是打印机还是扫描仪(Android)
是否允许实体正文进行HTTP DELETE请求?
如何将ZipInputStream转换为InputStream?
java.util.logging Java 8中的变量
PowerMockito.doReturn返回null
Java中的RESTful调用
Swing / Java:如何正确使用getText和setText字符串
特殊字符和重音字符
Android Studio中的ndk.dir错误
错误“找不到主类”