为什么这个查询在 Mongoskin 中不起作用?(其中 itemID 是 Mongo ObjectID
)
{"_id": itemID}
我知道确实存在一个匹配的元素,_id
因为如果我通过 MongoDB shell 运行相同的查询,它就可以工作。为什么它不适用于 Mongoskin?
var ObjectId = require('mongodb').ObjectID;
Notice: the name of the factory function is ObjectID, instead of ObjectId
db.collection('XXX').update({_id: ObjectId(XXX)}, {$set: {XXX : XXX}});
Well, db is a wrapped function of mongoskin:
module.exports = (function() {
return require('mongoskin').db('mongodb://localhost:27017/db_name');
})();
事实证明,mongoskin 使用了不同于普通 mongoDB 的类型ObjectID
。我正在使用另一个库将我的字符串转换为ObjectID
,因此造成了混乱。以下是我获得正确ObjectID
对象的方法:
require('mongoskin').ObjectID.createFromHexString(hexString);