C#Mongodb驱动程序 - 如何将元素插入位置0

时间:2015-09-12 13:40:16

标签: c# mongodb mongodb-.net-driver

我似乎找不到在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运算符。 - 希望这可能有所帮助,如果它是相关的。

1 个答案:

答案 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);