Mongodb $unwind 用于 mongoid 嵌入式文档

Mongodb $unwind for mongoid embedded document

以下是我拥有或尝试查询的架构示例

{
    "_id" : ObjectId("5139f9468efdd10e44000024"),
    "name" : "Test Test",
    "account_activities" : [
        {
            "_id" : ObjectId("5139f9468efdd10e44000025"),
            "activity_id" : ObjectId("5139f6118efdd10e4400000e"),
            "allowance" : 100,
            "base_rate" : {
                "cents" : 80,
                "currency_iso" : "USD"
            },
            "excess_rate" : {
                "cents" : 90,
                "currency_iso" : "USD"
            },
            "quota" : 100,
            "taxable" : true,
            "description" : "",
            "sm" : 1,
            "updated_at" : ISODate("2015-07-24T16:18:50.942Z")
        }
    ],
    "account_number" : "D-061-5556",
    "active" : false,
    "balance" : {
        "cents" : 0,
        "currency_iso" : "USD"
    },
}

在 运行 和 $unwind 上,我什么也没得到,我做错了什么..?

db.accounts.aggregate([{$unwind: "$account_activities"}, {$project: {_id: 0, name: 1, base_rate: 1}}])

我正在使用 mongo shell 版本 2.6.12

base_rate 仍在 account_activities 之下。所以你必须将它投影如下

db.accounts.aggregate([
    {$unwind: "$account_activities"}, 
    {$project: {
      _id: 0, 
      name: 1, 
      'account_activities.base_rate': 1
    }}
])