javascript - 使用嵌套文档查找查询会引发语法错误
问题描述
我试图获取place_id
等于4
使用以下查询的所有文档,但出现此错误:
SyntaxError: missing : after property id @(shell):1:23.
我输入错误了吗?我正在使用的查询是:
db.sidebar.find({ result.place_id: 4 });
这是一个示例文档:
{
"_id":ObjectId("5aebb473e8e191cb74ef8877"),
"result":{
"place_id":4,
"formatted_address":"589 Doyle Divide",
"geometry":{
"location":{
"lat":"-18.8806",
"lng":"177.1928"
}
},
"international_phone_number":"(571) 978-2039 x11427",
"name":"Walker Inc",
"opening_hours":{
"weekday_text":[
"Monday: 01:00 PM – 03:30 PM",
"Tuesday: 01:00 PM – 03:30 PM",
"Wednesday: 01:00 PM – 03:30 PM",
"Thursday: 01:00 PM – 03:30 PM",
"Friday: 01:00 PM – 03:30 PM",
"Saturday: 01:00 PM – 03:30 PM",
"Sunday: 01:00 PM – 03:30 PM"
]
},
"url":"https://maps.google.com/?cid=4",
"website":"http://www.Stracke - Wintheiser.com/"
}
}
解决方案
您需要使用点符号来访问嵌入文档的字段。这意味着您需要在这些字段周围添加引号:
db.sidebar.find({ "result.place_id": 4 });
您可能认为这也应该有效:
db.sidebar.find({ result: { place_id: 4 });
但是,虽然前者要求 MongoDB在一个字段(也可能包含其他字段)内查找具有place_id
值为 的字段的文档,但后者将查找子文档的完全匹配,也就是说,它将匹配仅字段为的文档,其中没有任何其他字段。4
result
result
{ place_id: 4 }
推荐阅读
- java - Kafka Consumer 如何从多个分配的分区消费
- javascript - 如何在Javascript反应本机中获取对象的子值总和?
- android - 修复元素大小并在其上添加 ScrollView
- mysql - 如果一列条件匹配,则 MySQL 插入或更新
- php - 使用 PHP 解码字符串
- mysql - 可以对数据库表进行排序以使 NULL 值出现在底部吗?
- php - 如何调试数字代码和中的问题?
- python - 使用 croniter 根据计划时间运行 python 脚本
- javascript - 如何使用angularjs而不是css来更改字体颜色选择选项?
- java - 随着 hibernate.c3p0.max_size 的增加,连接数似乎没有增加