gpt4 book ai didi

node.js - Mongodb 查询在 Node.js 中不起作用。为什么这段代码不起作用?

转载 作者:太空宇宙 更新时间:2023-11-04 00:37:43 27 4
gpt4 key购买 nike

我的变量 id 中有对象 id,但是当我运行此 updateOne 查询时,它不会更新数据库中的文档。当我用 updateOne({}) 替换 updateOne 参数时,它确实正确更新了数据库中的第一条记录,所以我知道我设置的语法是正确的......所以问题一定出在这行代码中:

{"_id": "ObjectId(\""+id+"\")"}},

但是当我用 console.log 打印出该行代码时,它看起来与有效的 mongoDB 查询相同。谁能帮我弄清楚为什么该行不起作用?是否存在类型转换问题或类似问题?

             db.collection('profile').updateOne(
{"_id": "ObjectId(\""+id+"\")"}},
{ $set:
{
"star_rating": updatedProfile.test ,
"address.street": updatedProfile.street,
"address.city": updatedProfile.city,
"address.postalcode": updatedProfile.postal,
"address.country": updatedProfile.country,
"phonenumber": updatedProfile.phone,
"birthday": updatedProfile.datepicker
}
}, //set
{
upsert: false //do not create a doc if the id doesn't exist
}
); //updateOne

最佳答案

您可以尝试一下这个方法吗?看看是否有效:

var ObjectID = require('mongodb').ObjectID,

db.collection('profile').updateOne(
{"_id": new ObjectID(id)}},
{ $set:
{
"star_rating": updatedProfile.test ,
"address.street": updatedProfile.street,
"address.city": updatedProfile.city,
"address.postalcode": updatedProfile.postal,
"address.country": updatedProfile.country,
"phonenumber": updatedProfile.phone,
"birthday": updatedProfile.datepicker
}
}, //set
{
upsert: false //do not create a doc if the id doesn't exist
}); //updateOne

关于node.js - Mongodb 查询在 Node.js 中不起作用。为什么这段代码不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38256603/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com