MongoDB C#2.0在集合中插入子项

时间:2018-02-12 01:07:39

标签: c# mongodb mongodb2

这是我到目前为止的代码。

var filter = Builders<UserEntity>.Filter.Where(s => s.user_bd_id == userid && s.entities_engaged.Any(i => i.item_bd_id == itemid));
var update = Builders<UserEntity>.Update.Set(s => s.entities_engaged[-1].engagement_weight, weight);
var result = await collection.UpdateOneAsync(filter, update);

这是集合:

{
    "_id" : ObjectId("59efdf83cb5e19e2b840e6ed"),
    "user_bd_id" : 0,
    "entities_engaged" : [ 
        {
            "item_bd_id" : 10,
            "engagement_weight" : 500.0
        }
    ]
}

如果文档存在,entity_engaged子列表存在,并且列表中的子项存在,则一切正常。如何将此代码转换为upsert?我尝试使用

await collection.UpdateOneAsync(filter, update, new UpdateOptions { IsUpsert = true });

但它不起作用。

另外,我想知道如何增加engagement_weight。上面的代码会覆盖该值,但我想使用类似engagement_weight = engagement_weight + 1

的内容

0 个答案:

没有答案