db.collection.save()中的语法错误

时间:2016-10-11 15:08:45

标签: mongodb

我第一次尝试使用MongoDB但是我遇到了以下语法错误:unexpected token illegal.我检查了它,看起来没问题。我在StackOverflow上发现了类似的问题,但这是一个不同的错误。我究竟做错了什么? 这是我的剧本:

db.student.save({"_id":ObjectId(5983548781331adf45ec7),"name":"replaced","age":55})

3 个答案:

答案 0 :(得分:1)

问题在于:ObjectId(5983548781331adf45ec7)

ObjectId接受24个十六进制数字的字符串。

ObjectId("<24 hex digits here>")

E.g。 ObjectId("0123456789abcdef01234567")

答案 1 :(得分:0)

如果您使用的是后端源代码,例如groovy(使用Grails GORM),您可以尝试以下非常干净且可读的脚本:

def studentFromDB = db.student.findById("5983548781331adf45ec7")
studentFromDB.name = "replaced"
studentFromDB.age = 55
studentFromDB.save(flush: true, failOnError: true)

如果您直接在mongo上使用它,则应使用MongoDB update,例如:

db.student.update(
   {"_id":ObjectId(5983548781331adf45ec7) },
   {
      name: "replaced",
      age: 55
   },
   { upsert: true }
)

答案 2 :(得分:0)

我修好了......错误是我错过了&#39; ObjectId&#39; 更正的脚本是`db.student.save({&#34; _id&#34;:ObjectId(&#34; 57fcf46763ecce707f071884&#34;),&#34; name&#34;:&#34; rep_dsave&#34; &#34;年龄&#34;:37})

感谢4J41和rotemy

`