c# - MongoDB 使用 C# 驱动程序替换数组内的数组
问题描述
我需要替换“baz”的内容。
{
"_id" : ObjectId("6058f722e9e41a3d243258dc"),
"fooName" : "foo1",
"fooCode" : 1,
"bar" : [
{
"barCode" : "123",
"barName" : "Rick's Cafe",
"baz" : [
{
"bazId" : "00",
"bazDescription" : "Ilsa"
},
{
"bazId" : "21",
"bazDescription" : "Victor"
}
]
}
]
}
我从 UpdateOneAsync 和过滤器开始
Expression<Func<Foo, bool>> filter =
f => f.fooCode == 1 &&
f.Bar.Any(b => s.BarCode == "123")
一旦我开始输入更新语句
Builders<Foo>.Update.Set(f => ??? , newBazArray);
我意识到我可能做错了。我应该如何更换阵列 baz?
解决方案
你应该可以使用这个:
f => f.Bar[-1].baz
where[-1]
相当于 Mongo 查询中的位置运算符 ($)。
推荐阅读
- javascript - 为 Highchart 格式化 Json
- java - Android,Gradle:java.lang.NullPointerException(无错误消息)
- android - Sendgrid 不像可点击链接那样显示深层链接
- tensorflow - 如何使用 Tensorflow 制作元胞自动机?
- rust - 为什么 Rust 不能做更复杂的类型推断?
- google-sheets - 使用跨多个条件的复选框进行过滤
- swiper - Swiper,仅重新加载/刷新修复显示问题
- https - 在 HTTP 请求的 haproxy 中设置 uri
- javascript - 在多个字段之间使用 ILIKE 子句对查询进行续集
- kde - KDE Spectacle includeMousePointer on rectangle