{ "_id" : "", "Username" : "", "Points" : 0, "CompletedAchievements" : [], "ActiveAchievements" : [], "Kudos" : [], "Teams" : [], "UserType" : "Standard" }Aquí está mi registro en el que me gustaría insertar. Estoy tratando de agregar el siguiente objeto a la matriz ActiveAchievements.
{ "_id": "my new id", "progress": 10 }Deseo agregar esto a la matriz de Logros activos que ya existe en un registro (que tiene una identificación única por la que puedo obtenerlo) en mi base de datos. Así como más en el futuro.
¿Cómo haría esto usando MongoDb.Driver? Cª#
Suponiendo que haya una colección llamada users con el nombre de Username de un documento como "John Doe", el siguiente código agregará { "_id": "my new id", "progress": 10 } al campo de matriz ActiveAchievements .
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 updatedReferencias: