MongoDB C# - 使用[-1]

时间:2017-12-21 05:42:49

标签: c# mongodb

我有一个属性类:

class
{
    string Key;
    string Value;
}

我有一个像这样的对象:

{
    ....
    List<Property> Properties
}

如果我想添加一个属性,我可以这样做:

Filter: _ => _.id == MyId && _.Properties.Any(__ => __.Key == MyKey)
Update: AddToSet(_ => _.Properties, new Property { Key = MyKey, Value = MyValue })

如果我想编辑现有属性,我可以这样做:

Filter: _ => _.id == MyId && _.Properties.Any(__ => __.Key == MyKey)
Update: Set(_ => _.Properties[-1].Value, MyValue)

这很有效。 (作为第二个问题:在创建或替换属性的情况下,我可以做一些upsert吗?)

问题来自获取数据:

Query: _ => _._id == MyId && _.Properties.Any(__ => __.Key == MyKey))

这将返回对象如果它有正确的键,但投影将失败:

Query: _ => _._id == MyId && _.Properties.Any(__ => __.Key == MyKey))
Projection: Expression(_ => _.Properties[-1].Value)

这将返回null .. [ - 1] 不能使用投影吗?

我可以这样工作:

Projection: Expression(_ => _.Properties.First(__ => __.Key == Name).Value)

但这并不能解释为什么[-1]不起作用。

0 个答案:

没有答案