[英]How to filter a nested document in a collection and update a filed?
我有一個名為Jobs
的收藏。
[
{
_id : 1
content:[
{
_id : 1,
stuff: "A"
},
{
_id : 2,
stuff: "B"
}
]
},
{
_id : 2
content:[
{
_id : 1,
stuff: "X"
},
{
_id : 2,
stuff: "Y"
}
]
},
...
]
我想將stuff
字段更新為Z
,其中job._id =
2和content._id = 2
。
我已經嘗試過這樣的事情:
var collection = database.GetCollection("Jobs");
var query = Query.EQ("_id", jobId);
var job = collection.FindOneAs<Job>(query);
var con = job.content.FirstOrDefault(x => x._id == contentIndex);
if (con != null) con.stuff = "Z";
collection.Save(job);
那么,如何使用單個查詢來更新嵌套文檔呢?
collection.Update(Query.EQ("content._id", contentIndex), Update.Set("content.$.stuff", "Z"));
提前致謝!
在外殼中,您可以使用位置運算符並使用類似以下查詢的元素來更新元素:
db.jobs.update({"_id": 2, "content._id":2}, {"content.$.stuff", "Z"});
相同的查詢可以轉換為C#(我不熟悉)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.