首页 文章

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

提问于
浏览
1

我似乎找不到在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 回答

  • 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);
    

相关问题