gpt4 book ai didi

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

转载 作者:可可西里 更新时间:2023-11-01 09:12:23 25 4
gpt4 key购买 nike

我需要使用 java 在 MongoDB 上插入文档(使用特定 ID 而不是自动生成的 ObjectID)..

  1. 要插入一个文档或更新(如果存在),我尝试使用 findOne 搜索 id,如果它不存在,则 insert id 和然后是findAndModify。它有效,但我不认为它是有效的方式,它很耗时。有没有更好的方法来实现这一点?

  2. 要一次插入多个文档,我正在关注这个 solution .但我不知道如何插入我的自定义 ID 而不是 objectID?

任何帮助将不胜感激

最佳答案

对于您的第一个问题,MongoDB 有 upsert所以

db.collection.update(
{query for id},
{document},
{upsert: true}
)

或在Java driver

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

如果您想设置自定义 ID,您只需手动设置 _id 键即可,即

yourBasicDBObject.put("_id",yourCustomId) 

您只需确保它对于每个文档都是唯一的。

您还需要在 modifiedObject 中设置 _id,否则将生成一个新对象。

至于批量操作,只需通过提供 _id 键为每个文档设置自定义 ID 也应该有效。

关于java - MongoDB:插入具有特定 ID 的文档而不是自动生成的 ObjectID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26273821/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com