使用Java更新MongoDB中的文档

迈克·B。

我正在使用MongoDB 3.2和MongoDB Java驱动程序3.2。我想更新具有其ID的文档的值。为此,我尝试使用以下两种方法(可在StackoverflowMongoDB Blog中找到):

方法1:

for(String docID : expiredDocsIDs) {
    Bson filter = Filters.eq("_id", docID);
    Bson updates = Updates.set("isExpired", true);

    dbCollection.findOneAndUpdate(filter, updates);
}

方法2:

expiredDocsIDs.stream()
    .forEach(docID -> {
        BasicDBObject searchQuery = new BasicDBObject("_id", docID);
        BasicDBObject updateFields = new BasicDBObject();
        updateFields.append("isExpired", true);
        updateFields.append("fetchStatus", "FETCHED");
        BasicDBObject setQuery = new BasicDBObject();
        setQuery.append("$set", updateFields);

        dbCollection.updateOne(searchQuery, setQuery);
});

这些方法都不行。它遍历文档ID列表,执行代码,但是在代码末尾,当我检查DB中的文档时,我尝试更新的文档字段中没有任何更改。

我的问题:
如何更新MongoDB中的特定文档?

迈克·B。

正如BlakesSeven正确指出的那样,问题出在_id领域的铸造上原始代码发送此参数,String而正确的方法是发送ObjectId类型的参数

正确且有效的代码形式MongoDB3.2:

this.trackedEpisodesReg.entrySet().stream()
    .filter(ep -> ep.getValue().isExpired())
    .forEach(ep -> {

        BasicDBObject updateFields = new BasicDBObject();
        updateFields.append("isExpired", true);

        BasicDBObject setQuery = new BasicDBObject();
        setQuery.append("$set", updateFields);

        BasicDBObject searchQuery = new BasicDBObject("_id", new ObjectId(ep.getValue().getEpisodeID()));

        dbCollection.updateOne(searchQuery, setQuery);
    });

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用Java更新MongoDB中的文档

来自分类Dev

如何使用Java更新mongoDB中的部分嵌套文档

来自分类Dev

如何使用Java在MongoDB中执行文档的批量更新?

来自分类Dev

使用Java更新MongoDB中的特定字段而不是整个文档

来自分类Dev

使用Java对象更新mongodb文档

来自分类Dev

Java + MongoDB:更新文档中的多个字段

来自分类Dev

Java + MongoDB:更新文档数量中的字段

来自分类Dev

更新MongoDB文档(在NodeJS中)

来自分类Dev

在mongodb中更新大量文档

来自分类Dev

在 mongodb 中更新文档

来自分类Dev

在mongodb中更新多个文档

来自分类Dev

我们如何使用MongoDB Java驱动程序在MongoDB中追加/更新集合的子文档?

来自分类Dev

我们如何使用MongoDB Java驱动程序在MongoDB中追加/更新集合的子文档?

来自分类Dev

使用findOne更新mongoDB文档中的子字段并保存

来自分类Dev

MongoDB:使用索引更新数组中的子文档

来自分类Dev

如何使用MongoDB更新数组中对象的文档?

来自分类Dev

MongoDB:使用索引更新数组中的子文档

来自分类Dev

使用节点在mongodb中更新子文档

来自分类Dev

使用 arrayFilters 更新 MongoDB 中的嵌套子文档

来自分类Dev

如何使用$ set和$ elemMatch之类的东西更新MongoDB文档数组中的单个子文档?

来自分类Dev

如何使用Java更新MongoDb中的数据?

来自分类Dev

如何使用Java在MongoDB 3.3中通过_id删除文档

来自分类Dev

使用Java对mongodb中的子文档数组进行排序

来自分类Dev

在MongoDB中获取“更新前”文档

来自分类Dev

MongoDB:如何更新集合中的整个文档

来自分类Dev

MongoDB:更新文档中的字典

来自分类Dev

是否要在mongodb中更新文档?

来自分类Dev

MongoDB更新数组中的错误子文档

来自分类Dev

更新MongoDB中的子文档数组

Related 相关文章

  1. 1

    使用Java更新MongoDB中的文档

  2. 2

    如何使用Java更新mongoDB中的部分嵌套文档

  3. 3

    如何使用Java在MongoDB中执行文档的批量更新?

  4. 4

    使用Java更新MongoDB中的特定字段而不是整个文档

  5. 5

    使用Java对象更新mongodb文档

  6. 6

    Java + MongoDB:更新文档中的多个字段

  7. 7

    Java + MongoDB:更新文档数量中的字段

  8. 8

    更新MongoDB文档(在NodeJS中)

  9. 9

    在mongodb中更新大量文档

  10. 10

    在 mongodb 中更新文档

  11. 11

    在mongodb中更新多个文档

  12. 12

    我们如何使用MongoDB Java驱动程序在MongoDB中追加/更新集合的子文档?

  13. 13

    我们如何使用MongoDB Java驱动程序在MongoDB中追加/更新集合的子文档?

  14. 14

    使用findOne更新mongoDB文档中的子字段并保存

  15. 15

    MongoDB:使用索引更新数组中的子文档

  16. 16

    如何使用MongoDB更新数组中对象的文档?

  17. 17

    MongoDB:使用索引更新数组中的子文档

  18. 18

    使用节点在mongodb中更新子文档

  19. 19

    使用 arrayFilters 更新 MongoDB 中的嵌套子文档

  20. 20

    如何使用$ set和$ elemMatch之类的东西更新MongoDB文档数组中的单个子文档?

  21. 21

    如何使用Java更新MongoDb中的数据?

  22. 22

    如何使用Java在MongoDB 3.3中通过_id删除文档

  23. 23

    使用Java对mongodb中的子文档数组进行排序

  24. 24

    在MongoDB中获取“更新前”文档

  25. 25

    MongoDB:如何更新集合中的整个文档

  26. 26

    MongoDB:更新文档中的字典

  27. 27

    是否要在mongodb中更新文档?

  28. 28

    MongoDB更新数组中的错误子文档

  29. 29

    更新MongoDB中的子文档数组

热门标签

归档