MongoDB C#驱动程序-更新嵌入式文档数组中的所有字段

爱德伍德

我在数据库中有这个实体

{
    "_id" : ObjectId("XXX"),
    "Bets" : [ 
        {
            "IsPublic" : false
        }, 
        {
            "IsPublic" : false
        }
    ]
}

我想更新嵌套文档中的所有filed IsPublic我有此查询,它完美地工作:

db.getCollection('bets').update({"_id": ObjectId("XXX")}, {$set : { "Bets.$[].IsPublic" : true }})

我想使用C#驱动程序编写相同的查询,并且我更喜欢强类型查询,如下所示:

var filter = Builders<TrackerBet>.Filter.Eq(b => b.Id, "XXX");
var update = Builders<TrackerBet>.Update.Set(b => b.Bets[-1].IsPublic, true);
var result = mongoDb.Bets.UpdateOneAsync(filter, update).Result; 

但这是行不通的。如果我放弃强类型查询,它将起作用:

var update = Builders<TrackerBet>.Update.Set("Bets.$[].IsPublic", true); 

甚至有可能实现强类型查询?我认为b.Bets [-1] .IsPublic应该可以解决问题,但出现错误位置运算符未从查询中找到所需的匹配项

ΝΝιΓΞΗΛψΚ

我不知道使用官方驱动程序完成此操作的任何内置方法。我编写了一个静态实用程序类该类返回提供的lambda表达式的字符串路径。使用它,您可以像这样消除硬编码的字符串:

    var path = Prop.PosAll<TrackerBet>(t => t.Bets[0].IsPublic);
    var update = Builders<TrackerBet>.Update.Set(path, true);

是有关静态类的所有方法更多信息

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用MongoDB和C#新驱动程序版本(2.0)更新集合中的嵌入式文档

来自分类Dev

更新数组中的嵌入式文档-Mongodb +节点驱动程序

来自分类Dev

Mongodb C#驱动程序Perform字符串包含对嵌入式文档中的属性的查询

来自分类Dev

mongodb C#驱动程序更新多个字段

来自分类Dev

如何使用C#驱动程序更新MongoDB中数组子文档中包含的数组子文档中的字段?

来自分类Dev

如何使用C#驱动程序更新MongoDB中数组子文档中包含的数组子文档中的字段?

来自分类Dev

使用MongoDB C#驱动程序查询数组的数组

来自分类Dev

MongoDB C#驱动程序字段投影

来自分类Dev

MongoDB C#驱动程序和DateTime字段

来自分类Dev

MongoDB C#驱动程序和DateTime字段

来自分类Dev

MongoDB C#官方驱动程序批量更新

来自分类Dev

在MongoDB C#驱动程序中获取生成的脚本

来自分类Dev

MongoDB C# 驱动程序:如何将 $in 运算符用于嵌套的嵌入式文档?

来自分类Dev

Mongodb C#驱动程序更新所有子数组元素

来自分类Dev

如何在MongoDB C#驱动程序中按值的字段范围选择文档?

来自分类Dev

带有聚合管道的MongoDB C#驱动程序更新文档

来自分类Dev

如何使用C#驱动程序删除mongodb文档中的嵌套数组元素

来自分类Dev

Mongodb C# 驱动程序只返回数组中匹配的子文档

来自分类Dev

mongodb c ++驱动程序无法更新

来自分类Dev

MongoDB C#驱动程序按字段值在数组中查找项目

来自分类Dev

使用C#驱动程序更新MongoDB中的多个数组项

来自分类Dev

MongoDB C#驱动程序-更新许多文档时的性能问题

来自分类Dev

MongoDB C#驱动程序2.0-更新文档

来自分类Dev

MongoDB C#驱动程序-如何查询子文档数组上的属性

来自分类Dev

在mongodb中获取新集合在mongodb C#驱动程序中不起作用

来自分类Dev

使用Update.Push时,mongodb C#驱动程序未在嵌入式对象列表中生成新添加文档的ObjectId

来自分类Dev

复合查询以在MongoDb C#驱动程序中查找文档

来自分类Dev

使用C#驱动程序在mongodb中查找计算值最高的文档

来自分类Dev

复合查询以在MongoDb C#驱动程序中查找文档

Related 相关文章

  1. 1

    使用MongoDB和C#新驱动程序版本(2.0)更新集合中的嵌入式文档

  2. 2

    更新数组中的嵌入式文档-Mongodb +节点驱动程序

  3. 3

    Mongodb C#驱动程序Perform字符串包含对嵌入式文档中的属性的查询

  4. 4

    mongodb C#驱动程序更新多个字段

  5. 5

    如何使用C#驱动程序更新MongoDB中数组子文档中包含的数组子文档中的字段?

  6. 6

    如何使用C#驱动程序更新MongoDB中数组子文档中包含的数组子文档中的字段?

  7. 7

    使用MongoDB C#驱动程序查询数组的数组

  8. 8

    MongoDB C#驱动程序字段投影

  9. 9

    MongoDB C#驱动程序和DateTime字段

  10. 10

    MongoDB C#驱动程序和DateTime字段

  11. 11

    MongoDB C#官方驱动程序批量更新

  12. 12

    在MongoDB C#驱动程序中获取生成的脚本

  13. 13

    MongoDB C# 驱动程序:如何将 $in 运算符用于嵌套的嵌入式文档?

  14. 14

    Mongodb C#驱动程序更新所有子数组元素

  15. 15

    如何在MongoDB C#驱动程序中按值的字段范围选择文档?

  16. 16

    带有聚合管道的MongoDB C#驱动程序更新文档

  17. 17

    如何使用C#驱动程序删除mongodb文档中的嵌套数组元素

  18. 18

    Mongodb C# 驱动程序只返回数组中匹配的子文档

  19. 19

    mongodb c ++驱动程序无法更新

  20. 20

    MongoDB C#驱动程序按字段值在数组中查找项目

  21. 21

    使用C#驱动程序更新MongoDB中的多个数组项

  22. 22

    MongoDB C#驱动程序-更新许多文档时的性能问题

  23. 23

    MongoDB C#驱动程序2.0-更新文档

  24. 24

    MongoDB C#驱动程序-如何查询子文档数组上的属性

  25. 25

    在mongodb中获取新集合在mongodb C#驱动程序中不起作用

  26. 26

    使用Update.Push时,mongodb C#驱动程序未在嵌入式对象列表中生成新添加文档的ObjectId

  27. 27

    复合查询以在MongoDb C#驱动程序中查找文档

  28. 28

    使用C#驱动程序在mongodb中查找计算值最高的文档

  29. 29

    复合查询以在MongoDb C#驱动程序中查找文档

热门标签

归档