这是一个示例文档:
{
row: [
{
identifier: "a"
value: 52
},
{
identifier: "b"
value: 22
},
{
identifier: "c"
value: 36
}
]
}
假设我首先需要数组(identifier
c)和最后一个元素(identifier
c),但只在最后一个元素中value
大于5的情况下( identifier
c)。
基本上,我想结合这两个条件:
identifier a
或identifier c
identifier c
时,这两个条件都应该是聚合管道的一部分。结果应如下所示:
[
{
_id: 1,
row: [{ identifier: "a", value: 52}, { identifier: "c", value: 22}]
} //, ...
]
我尝试了很多方法,但没有任何效果。我尝试的最后一件事是$cond
,但这也没有用:
'if': {
'row.identifier': c,
'then': {
'row.value': {$gt: 5}
}
}
答案 0 :(得分:1)
以下是如何过滤 var tuple = Tuple.Create("MyKey", "MyValue");
var list = new List<string>();
var str = tuple.ToString();
list.Add(str);
// str has the value "(MyKey, MyValue)"
Console.WriteLine(str);
int comma = str.IndexOf(", ");
string key = str.Substring(1,comma-1);
string valuee = str.Substring(comma+2,str.Length-key.Length-4);
var tuple2 = Tuple.Create(key, valuee);
// 'tuple2' is now equal to the orignal 'tuple'
数组以仅包含您想要的内容:
row