query in mongo Shell gives SyntaxError: missing : after property

query in mongo Shell gives SyntaxError: missing : after property

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

mongoshellreturns这个错误

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

为什么? 提前致谢!

如果您的查询包含内部文档,请为它们使用引号。此外,使用引号查询字符串值

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

如果缺少 ":",也会出现此错误。

在我的例子中 我错过了 ":" 在 $set 之后,如下所示。

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

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

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

希望这对犯我错误的人有所帮助。