MongoDB:是否可以根据条件按子文档值对文档进行排序

时间:2013-11-21 20:25:17

标签: mongodb

我们说我们有以下文件:

{
    "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查询或聚合框架查询

0 个答案:

没有答案