我们说我们有以下文件:
{
"Name" : "Steve",
"Attributes" : [{
"k" : 1,
"v" : "Canada"
}, {
"k" : 2,
"v" : "Toronto"
}]
},
{
"Name" : "John",
"Attributes" : [{
"k" : 1,
"v" : "USA"
}, {
"k" : 2,
"v" : "New-York"
}]
},
{
"Name" : "Paul",
"Attributes" : [{
"k" : 1,
"v" : "Canada"
}, {
"k" : 2,
"v" : "Montreal"
}]
}
我想要的是获取任何属性等于
的所有文档{ "k":1, "v":"Canada" }
SORT BY attribute.v其中attributes.k:2。
所以预期的结果应该是:
{
"Name" : "Paul",
"Attributes" : [{
"k" : 1,
"v" : "Canada"
}, {
"k" : 2,
"v" : "Montreal"
}]
},
{
"Name" : "Steve",
"Attributes" : [{
"k" : 1,
"v" : "Canada"
}, {
"k" : 2,
"v" : "Toronto"
}]
}
John被排除,因为k:1值是USA而不是CANADA 自从k:2价值蒙特利尔字符串出现在多伦多字符串之前,保罗首先出现。
我怎样才能做到这一点?通过“标准”Mongo查询或聚合框架查询