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

时间:2016-08-13 07:09:26

标签: mongodb mongodb-query mongo-shell

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

mongo shell返回此错误

  

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

为什么呢? 提前谢谢!

2 个答案:

答案 0 :(得分:18)

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

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

答案 1 :(得分:2)

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

就我而言,我错过了$ set 之后的“:” ,如下所示。

db.myData.updateOne({_ id:ObjectId(“ new_id”)},{$ set {name:“ new_name”}})

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

db.myData.updateOne({_ id:ObjectId(“ new_id”)},{$ set:{name:“ new_name”}})

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