我有這樣更新在蒙戈嵌套數組用C#
{
"_id": "63dafa72f21d48312d8ca405",
"tasks": [{
"_ref": "63d8d8d01beb0b606314e322",
"data": {
"values": [{
"key": "Deadline",
"value": "2014-10-13"
}]
}
}, {
"_ref": "84dd046c6695e32322d842f5",
"data": {
"values": []
}
}]
}
文檔現在我想更新中值值是內部數據,如果_ref場做配合我的輸入。
我迄今爲止代碼:
public bool updateProject(Project dbPro, Project pro)
{
var collection = db.GetCollection<BsonDocument>("projects");
var filter = Builders<BsonDocument>.Filter.Eq("_id", ObjectId.Parse(dbPro.Id));
var update = Builders<BsonDocument>.Update.AddToSetEach("tasks", pro.Tasks);
var result = collection.UpdateOne(filter, update);
if (result.IsModifiedCountAvailable)
{
if (result.ModifiedCount == 1)
{
return true;
}
}
return false;
}
目前這個代碼不只是附加的文件作爲新的任務,而不是將值追加到匹配的任務。也許有人有一個想法如何實現這種行爲?
UPDATE
我試着像@Shane Oborn說。但它仍然不適合我。
var collection = db.GetCollection<BsonDocument>("projects");
var filter = Builders<BsonDocument>.Filter.Eq("_id", ObjectId.Parse(dbPro.Id));
var update = Builders<BsonDocument>.Update.Push("tags", buildBsonArrayFromTags(pro.Tags));
var result = collection.UpdateOne(filter, update);
if (result.IsModifiedCountAvailable)
{
if (result.ModifiedCount == 1)
{
return true;
}
}
return false;
}
而不是重寫數據,它將數組附加到我的數組。
UPDATE
確定的,而不是推我確實需要設置。然後它就起作用了。
看看[這個問題](http://stackoverflow.com/questions/ 18148166/find-document-with-array-that-contains-a-specific-value),它可以幫助你。 –
謝謝。我會嘗試。 – Kleisophabo