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