在mongo中我存储了具有字段“titleComposite”的对象。该字段包含标题对象数组,如下所示:
"titleComposite": [
"0": {
"titleType": "01",
"titleText": "Test cover uploading"
}
]
我正在进行查询,我希望只返回返回值的“titleText”值。以下是我的查询示例:
db.onix_feed.find({"addedBy":201, "mediaFileComposite":{$exists:false}}, {"isbn13":1,"titleComposite.titleText":1})
在结果中,我看到像
这样的值{
"_id" : ObjectId("559ab286fa4634f309826385"),
"titleComposite" : [ { "titleText" : "The Nonprofit World" } ],
"isbn13" : "9781565495296"
}
有没有办法摆脱“titleComposite”包装器对象并只接收titleText?例如,仅获取第一个元素的titleText?
非常感谢任何帮助
答案 0 :(得分:1)
你可以mongodb aggregation来达到预期的效果。将您的查询重新排列如下......
db.onix_feed.aggregate([
{
$match: {
$and: [
{"addedBy":201},
{"mediaFileComposite":{$exists:false}}
]
}
},
{
$project : { titleText: "$titleComposite.titleText",
"isbn13" : 1 }
}
])