MongoDB-SyntaxError:非法字符

时间:2018-11-19 17:30:24

标签: database mongodb

我试图在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}}}
])

我正在尝试计算三种状态下的所有邮政编码,因此这是一个很好的查询方法吗?如果没有,我该怎么办?

感谢您的帮助!

4 个答案:

答案 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}}} ])

谢谢。