在mongoDB中更新文档时获取writeError(代码2)。
以下是代码:
db.transactions.insert(
{
_id: 1,
source: "A",
destination: "B",
value: 100,
state: "initial",
lastModified: new Date()
}
)
var t = db.transactions.findOne( { state: "initial" } )
db.transactions.update(
{ "_id": t._id, "state": "initial"},
{
"$set": { "state": "pending" },
"$currentDate": { "lastModified" : true }
}
)
上面代码中的最后一个语句失败并出现错误:
WriteResult({
"nMatched" : 0,
"nUpserted" : 0,
"nModified" : 0,
"writeError" : {
"code" : 2,
"errmsg" : "cannot compare to undefined"
}
})
需要帮助了解抛出此错误的原因以及正确的更新语法。
答案 0 :(得分:1)
您的代码 Jatin 没有问题,请确保您正好粘贴在mongo shell中,我盲目地将您的代码粘贴在我的mongo shell中并且它有效。粘贴屏幕截图供您参考。
https://www.dropbox.com/s/or71q4ma8rbt4iz/mongo_txn_err_code_issue.png?dl=0
另外,您可以参考mongo doc获取相同的示例并详细讨论它。
http://docs.mongodb.org/manual/tutorial/perform-two-phase-commits/
如果您需要任何进一步的帮助,请告诉我们。
Happy Mongoing: - )
- $