我有一个名为' demo'的mongo集合,它具有以下结构:
{
"_id" : ObjectId("59d600182c44a11cec2b9ac5"),
"User_ID" : "user-12",
"Status" : {
"User_Status" : "Registered",
"Location" : "USA"
}
}
我使用了以下mongo查询来获取数据:
db.demo.find({},
{
User_ID:1,
"Status.User_Status":1
})
以上查询的输出为:
{
"_id" : ObjectId("59d600182c44a11cec2b9ac5"),
"User_ID" : "user-12",
"Status" : {
"User_Status" : "Registered"
}
}
但我的要求是实现以下输出:
{
"_id" : ObjectId("59d600182c44a11cec2b9ac5"),
"User_ID" : "user-12",
"User_Status" : "Registered"
}
是否有任何方法可以禁用父文档(状态)并仅获取子文档" User_Status"的结果。谢谢你的帮助。
答案 0 :(得分:2)
是的,您可以aggregate
使用project
代替find
使用以下命令获得所需结果:
db.dummy.aggregate(
{
$project:
{
User_ID:1,
User_Status:"$Status.User_Status"
}
})
答案 1 :(得分:2)
使用aggregate代替find和project运算符。
db.demo.aggregate( {$project: {User_Status:'$Status.User_Status', User_ID:'$User_ID'}} );