我在Node.JS中遇到MongoDB驱动程序的问题。 当尝试按ID更新多个用户时,MongoDB会返回错误:
{"name":"MongoError","message":"Argument must be a string"}
当省略新的ObjectId对象数组并使用简单的ID字符串时,它不返回任何错误,但标识符也不会被推送到实例数组。
userIdArray = userIdArray.map(id => new ObjectId(id));
this.collection.updateMany({
_id: {$in: userIdArray}
}, {
$push: {instances: identifier}
})
直接从Mongo Shell执行此updateMany函数时,使用ObjectIds数组,查询成功运行。
提前致谢。
这是完整的功能:
this.collection.updateMany({
_id: {$in: userIdArray}
}, {
$push: {instances: identifier}
}).then((result) => {
callback(null, 'successfully added instance to users.');
}, (err) => {
console.log(err);
callback(err);
}).catch((err) => {
new Report().error(err);
})
console.log(err)返回上面的错误
答案 0 :(得分:1)
我使用了一个安装的数据库连接和另一个的ObjectID函数,使用:require(' mongodb')。ObjectID;
我所要做的就是从连接数据库的同一个地方传递ObjectID函数。
希望将来能帮助其他人。