Tam*_*ara 2 mongodb mongodb-query
在 mongo 中,我存储具有“titleComposite”字段的对象。该字段包含标题对象的数组,如下所示:
"titleComposite": [
"0": {
"titleType": "01",
"titleText": "Test cover uploading"
}
]
Run Code Online (Sandbox Code Playgroud)
我正在执行查询,我只想接收返回值的“titleText”值。这是我的查询的示例:
db.onix_feed.find({"addedBy":201, "mediaFileComposite":{$exists:false}}, {"isbn13":1,"titleComposite.titleText":1})
Run Code Online (Sandbox Code Playgroud)
在结果中我看到类似的值
{
"_id" : ObjectId("559ab286fa4634f309826385"),
"titleComposite" : [ { "titleText" : "The Nonprofit World" } ],
"isbn13" : "9781565495296"
}
Run Code Online (Sandbox Code Playgroud)
有没有办法摆脱“titleComposite”包装对象并只接收 titleText?例如,只取第一个元素的titleText?
将不胜感激任何帮助
你可以通过mongodb聚合来达到你预期的结果。重新排列您的查询如下...
db.onix_feed.aggregate([
{
$match: {
$and: [
{"addedBy":201},
{"mediaFileComposite":{$exists:false}}
]
}
},
{
$project : { titleText: "$titleComposite.titleText",
"isbn13" : 1 }
}
])
Run Code Online (Sandbox Code Playgroud)