【发布时间】:2017-05-06 20:31:18
【问题描述】:
假设我有一些 mongo DB 查询,它返回以下两个文档。 (我正在使用聚合和投影返回这个结果集)。
{
"name" : {
"value" : "ANDERSON"
},
"ID" : {
"value" : "2356"
},
}
{
"employeename" : {
"value" : "DAVID"
},
"ID" : {
"value" : "2356"
},
}
我的数据库没有架构,我正在存储属性和值。有多个属性代表相同的信息。例如这里的 "name" & "employeename" 代表相同的东西。我想要一些通用属性的最终输出(比如“员工姓名”)。这个公共属性的值可以来自“name”或“employeename”。
我认为这个问题可以通过在聚合中再添加一个管道来解决。我试过 $or (它返回真/假而不是值)
db.getCollection('mycollection').aggregate([
{ "$project" : {
"name" : 1,
"ID" : 1, "employeename" : 1
}},
{ "$project":{
"Employee Name": {$or : ["$name", "$employeename"]}
}}
])
最终输出应该是
{
" Employee Name" : {
"value" : "ANDERSON"
},
"ID" : {
"value" : "2356"
},
}
{
" Employee Name" : {
"value" : "DAVID"
},
"ID" : {
"value" : "2356"
},
}
谁能告诉我如何编写这个 mongo DB 命令?
【问题讨论】:
标签: mongodb mongodb-query aggregation-framework