Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用MongoDB C#将新对象插入(推送)嵌套数组?_C#_Arrays_Mongodb_Mongodb .net Driver - Fatal编程技术网

如何使用MongoDB C#将新对象插入(推送)嵌套数组?

如何使用MongoDB C#将新对象插入(推送)嵌套数组?,c#,arrays,mongodb,mongodb-.net-driver,C#,Arrays,Mongodb,Mongodb .net Driver,这是我想插入的记录。 我正在尝试将以下对象添加到ActiveAcquisitions数组中 { "_id" : "", "Username" : "", "Points" : 0, "CompletedAchievements" : [], "ActiveAchievements" : [], "Ku

这是我想插入的记录。 我正在尝试将以下对象添加到ActiveAcquisitions数组中

{
    "_id" : "",
    "Username" : "",
    "Points" : 0,
    "CompletedAchievements" : [],
    "ActiveAchievements" : [],
    "Kudos" : [],
    "Teams" : [],
    "UserType" : "Standard"
}
我希望将其添加到活动成就数组中,该数组已存在于我数据库中的记录(该记录具有唯一的ID,我可以通过该ID获取)。将来还会有更多


如何使用MongoDb.Driver实现这一点?在C#

中,假设有一个名为
users
的集合,文档的
Username
为“John Doe”,下面的代码将把
{u id:“我的新id”,“progress”:10}
添加到
ActiveAcquisitions
数组字段中

{
    "_id": "my new id",
    "progress": 10
}
var collection=database.GetCollection(“用户”);
var filter=Builders.filter.Eq(“用户名”、“约翰·多伊”);
var update=Builders.update
.推(
“积极的成就”,
新的B文件(“我的新id”)。添加(“进度”,10);
var result=collection.UpdateOne(过滤器,更新);
Console.WriteLine(result.ModifiedCount);//当一个文档更新时,应打印1
参考资料:

  • ,, 请参阅更新文档部分

感谢您的回复,这对我帮助很大,解决了我的问题
var collection = database.GetCollection<BsonDocument>("users");
var filter = Builders<BsonDocument>.Filter.Eq("UserName", "John Doe");
var update = Builders<BsonDocument>.Update
                                   .Push<BsonDocument>(
                                        "ActiveAchievements", 
                                        new BsonDocument("_id", "my new id").Add("progress", 10));
var result = collection.UpdateOne(filter, update);
Console.WriteLine(result.ModifiedCount); // should print 1, as one document is updated