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
}}
])
以下是我拥有或尝试查询的架构示例
{
"_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
}}
])