【发布时间】:2018-03-09 02:21:18
【问题描述】:
(我是一个非常简单的问题的新手):
如果我的数据库(来自文档示例)包含:
{ "item" : "journal", "qty" : 25, "size" : { "h" : 14, "w" : 21, "uom" : "cm" }, "status" : "A" }
{ "item" : "notebook", "qty" : 50, "size" : { "h" : 8.5, "w" : 11, "uom" : "in" }, "status" : "A" }
{ "item" : "paper", "qty" : 100, "size" : { "h" : 8.5, "w" : 11, "uom" : "in" }, "status" : "D" }
{ "item" : "planner", "qty" : 75, "size" : { "h" : 22.85, "w" : 30, "uom" : "cm" }, "status" : "D" }
{ "item" : "postcard", "qty" : 45, "size" : { "h" : 10, "w" : 15.25, "uom" : "cm" }, "status" : "A" }
我发出这个命令:
db.inventory.find( { item: /^j/ }, { size: 1 } )
我拿回了这份文件:
{
"_id" : ObjectId("59448e8544c2d6b6ced4ac66"),
"size" : {
"h" : 14.0,
"w" : 21.0,
"uom" : "cm"
}
}
我想做的是,只取回“h”。如果我尝试这个命令:
db.inventory.find( { item: /^j/ }, { size.h: 1 } )
我得到“Unexpected token .”
我怎样才能只返回数组“size”的“h”字段?
谢谢!
PS,我试过how to retrieve partial objects from object array in a field in mongodb中的例子和答案,结果却是“Script executed successfully, but there are no results to show.”
【问题讨论】:
-
因为它不是数组。并且非常具体的错误消息应该指出“点”是问题的明确来源
.查看核心文档中的"Dot Notation" 和非常清晰的示例"<embedded document>.<field>",它非常清楚地显示了“引号”"" -
谢谢尼尔。你是一位伟大的老师。
标签: mongodb mongodb-query