EDIT: Non cercando il modo javascript per farlo. Sto cercando il modo di farlo con il driver MongoDB C# 2.0 (so che potrebbe non essere possibile, ma spero che qualcuno conosca una soluzione).Elemento Mongo update array (driver .NET 2.0)
Sto cercando di aggiornare il valore di un elemento incorporato in un array sul documento principale nel mio mongodb.
Sto cercando un modo fortemente digitato per farlo. Sto usando il Mongodb c# 2.0 driver
Posso farlo scoccando l'elemento, aggiornando il valore, quindi reinserendolo. Questo non sembra giusto; dal momento che sto sovrascrivendo quello che potrebbe essere stato scritto nel frattempo.
Ecco quello che ho provato finora, ma senza fortuna:
private readonly IMongoCollection<TempAgenda> _collection;
void Main()
{
var collectionName = "Agenda";
var client = new MongoClient("mongodb://localhost:27017");
var db = client.GetDatabase("Test");
_collection = db.GetCollection<TempAgenda>(collectionName);
UpdateItemTitle(1, 1, "hello");
}
public void UpdateItemTitle(string agendaId, string itemId, string title){
var filter = Builders<TempAgenda>.Filter.Eq(x => x.AgendaId, agendaId);
var update = Builders<TempAgenda>.Update.Set(x => x.Items.Single(p => p.Id.Equals(itemId)).Title, title);
var result = _collection.UpdateOneAsync(filter, update).Result;
}
possibile duplicato di [MongoDB - aggiornare un oggetto in Array nidificato] (http://stackoverflow.com/questions/10522347/mongodb-update-an-object- in-nested-array) –
@BlakesSeven che non è domanda # ac? –
È ancora lo stesso principio. Abbina l'elemento dell'array nella parte della query e usa l'operatore posizionale '$' nella porzione di aggiornamento. Non l'ho tirato fuori casualmente da una borsa. –