我试图在MongoDB中运行一个求和查询,该查询以三种状态计算所有邮政编码,但是请继续执行以下操作:
SyntaxError: illegal character
这是我的数据示例:
{ "_id" : "80002", "city" : "ARVADA", "loc" : [ -105.098402, 39.794533 ], "pop" : 12065, "state" : "CO" }
{ "_id" : "80003", "city" : "ARVADA", "loc" : [ -105.065549, 39.828572 ], "pop" : 32980, "state" : "CO" }
这是我的查询:
db.population.aggregate([
{ $match: { $and: [ {“state”:”CA”}, { “state”:”AZ”}, {“state”:”NM”}] } },
{$group : {_id: null, count:{$sum:1}}}
])
我正在尝试计算三种状态下的所有邮政编码,因此这是一个很好的查询方法吗?如果没有,我该怎么办?
感谢您的帮助!
答案 0 :(得分:8)
如果使用的是CLI,请尝试使用倾斜(`)而不是双引号(“)。尝试一下。编码愉快!!!
答案 1 :(得分:1)
贷方转到Ashh。
如果您使用的是mongoshell或javascript,则无需使用反引号,则应为:
db.population.aggregate([ { "$match": { "$or": [ { "state": "CA" }, { "state": "AZ" }, { "state": "NM" } ] }}, { "$group" : { "_id": null, "count": { "$sum":1 }}} ])
答案 2 :(得分:1)
根据JohnnyHK和Geekbro的回答,如果您使用文字处理程序(或Apple Notes)准备代码而不是文本编辑器,则可能会发现它已用“智能”引号(“)代替了哑引号(“,看起来一样,但是是外壳程序无法识别的不同字符,因此是错误)。正如Geekbro所说,请使用单引号(')而不是双引号,或使用不太聪明的文本编辑器。
答案 3 :(得分:0)
我假设您使用的是 CLI(命令行界面),因此为此,您不必使用双引号 (" "),只需一个 单引号 strong> quote(' ') 将完美工作。
更改是:
db.population.aggregate([
{ $match: { $and: [ {'state':'CA'}, { 'state':'AZ'}, {'state':'NM'}] } }, {$group : {_id: null, count:{$sum:1}}} ])
谢谢。