我似乎找不到在Mongodb C#Driver中的数组中的特定索引处插入元素的方法。 - 例如,在位置0处插入元素。
数组中唯一明显的插入是使用push,但是它会附加到数组的末尾。
我尝试了以下但不起作用。
var filter = Builders<ChatRoom>.Filter.Eq(Keys.MongoId, ObjectId.Parse(chatRoomId));
var update = Builders<ChatRoom>.Update.Set(Keys.Comments + ".$.-1", comment);
或
var update = Builders<ChatRoom>.Update.Push(Keys.Comments+".-1",comment);
但它不起作用。此外,我似乎无法在Mongodb C#docs中找到$ position运算符。 - 希望这可能有所帮助,如果它是相关的。
答案 0 :(得分:1)
好的超级简单,在探索驱动程序和Visual Studio的intellisense帮助后,这是正确的答案:
var filter = Builders<ChatRoom>.Filter.Eq(Keys.MongoId, ObjectId.Parse(chatRoomId));
var update = Builders<ChatRoom>.Update.PushEach(Keys.Comments, new List<Comment>() { comment }, position: 0);
await MongoCollections.GetChatRoomCollection().UpdateOneAsync(filter, update);