sql >> Databasteknik >  >> NoSQL >> MongoDB

Mongo C#-drivrutin uppdaterar ett specifikt element i en kapslad array

Du behöver $ positionsoperatör där du kan ange villkor på dokumentnivå och villkor på arraynivå för att hitta enstaka kapslade objekt i en array av ett visst dokument. I C# $ tecken representeras av -1 skickas som ett index för din modellarray. Försök:

var col = mydb.GetCollection<Document>("collectionName");
var id = new ObjectId("5babaaf5509f6d342da5abaa");
var elementName = "Car";
var newValue = 2;

var filterBuilder = Builders<Document>.Filter;
var filter = filterBuilder.Eq(x => x.Id, id) &
    filterBuilder.ElemMatch(doc => doc.Elements, el => el.Name == elementName);

var updateBuilder = Builders<Document>.Update;
var update = updateBuilder.Set(doc => doc.Elements[-1].Value, newValue);

Col.UpdateOne(filter, update);



  1. Är MongoDB på något sätt begränsad till en enda kärna?

  2. Hitta dagens sista dokument för de senaste 7 dagarna

  3. Få Redis Master-adress från Sentinel C#

  4. Hur uppdaterar man värden med pymongo?