在mongo中查询Shell给出了SyntaxError:missing:after属性

Com*_*rld 6 mongodb mongo-shell mongodb-query

db.movieDetails.find(
  { year: 2013, imdb.rating: Pg-13, award.wins: 0 },
  { title: 1, _id: 0 }
).pretty();
Run Code Online (Sandbox Code Playgroud)

mongo shell返回此错误

2016-08-13T09:08:00.648 + 0200 E QUERY [thread1] SyntaxError:missing:属性id @(shell):1:60

为什么?先感谢您!

tar*_*pka 24

如果您的查询包含内部文档,则使用引号.另外,使用引号查询字符串值

db.movieDetails.find(
  { year: 2013, "imdb.rating": "Pg-13", "award.wins": 0 },
  { title: 1, _id: 0 }
).pretty();
Run Code Online (Sandbox Code Playgroud)

  • 如果运算符期望单个参数,但您将其放在花括号中,也会发生这种情况。例如 `{$sqrt: {$_id}}` 是不正确的,因为它应该是 `{$sqrt: "$_id"}`。 (2认同)

adi*_*adi 7

如果遗漏了“:”,也会出现此错误

在我的情况下,我错过了$set 之后的“:”,如下所示。

db.myData.updateOne({_id:ObjectId("new_id")},{$set{name:"new_name"}})

我遇到了标题中提到的相同错误,我更改的代码有效

db.myData.updateOne({_id:ObjectId("new_id")},{$set:{name:"new_name"}})

希望这能帮助那些犯我错误的人。