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

Mongodb db.collection.save()中的语法错误,mongodb,Mongodb,我第一次尝试MongoDB,但遇到以下语法错误:意外标记非法。我检查了它,它看起来正常。我在StackOverflow上发现了类似的问题,但这是一个不同的错误。我做错了什么? 这是我的剧本: db.student.save({"_id":ObjectId(5983548781331adf45ec7),"name":"replaced","age":55}) 问题就在这里:ObjectId(5983548781331adf45ec7) ObjectId接受24个十六进制数字的字符串 Object

我第一次尝试MongoDB,但遇到以下语法错误:
意外标记非法。
我检查了它,它看起来正常。我在StackOverflow上发现了类似的问题,但这是一个不同的错误。我做错了什么? 这是我的剧本:

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

问题就在这里:
ObjectId(5983548781331adf45ec7)

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

ObjectId("<24 hex digits here>")
ObjectId(“”)

例如,
ObjectId(“0123456789abcdef01234567”)

如果您使用的是groovy(带有Grails GORM)等后端源代码,则可以尝试以下非常清晰可读的脚本:

def studentFromDB = db.student.findById("5983548781331adf45ec7")
studentFromDB.name = "replaced"
studentFromDB.age = 55
studentFromDB.save(flush: true, failOnError: true)
如果直接在mongo上使用,则应使用,例如:

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

我修正了…错误是我遗漏了ObjectId中的引号 更正后的脚本是` db.student.save({“_id”:ObjectId(“57fcf4676ecce707f071884”),“name”:“rep_dsave”,“age”:37})

谢谢4J41和rotemy


`

Hi MSGK:如果4J41的答案为您解决了问题,那么正确的做法是投票并接受4J41的答案,而不是自己将其作为单独的答案发布。