sql >> Database >  >> NoSQL >> MongoDB

Mongo C#-stuurprogramma werkt een specifiek element in een geneste array bij

Je hebt $ positionele operator nodig waar u de voorwaarde op documentniveau en op arrayniveau kunt specificeren om een ​​enkel genest item in een array van een bepaald document te vinden. In C# $ teken wordt weergegeven door -1 doorgegeven als een index van uw modelarray. Probeer:

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. geneste uitzondering is redis.clients.jedis.exceptions.JedisConnectionException:kon geen bron uit de pool halen

  2. Mongodb:prestatie-impact van $HINT

  3. MongoRegex gebruiken (MongoDB C#-stuurprogramma)

  4. Advies nodig:hoe React op de juiste manier te verbinden met MongoDB