gpt4 book ai didi

node.js - Mongoose:findByIdAndUpdate 方法既不更新也不插入

转载 作者:太空宇宙 更新时间:2023-11-03 23:59:14 31 4
gpt4 key购买 nike

findByIdAndUpdate 方法应该更新或插入数据库中的对象,但它不执行任何操作。它也不会抛出错误消息或其他内容。

我也尝试过使用原始的 ObjectId 作为 _id 字段,但也不起作用。

有人知道更新对象或将对象插入数据库时​​缺少什么吗?

const schema = new Schema({
_id: {
type: Number,
required: true
},
name: {
type: String,
required: true
}
}, { toJSON: { virtuals: true } });

const myJson = {
"myobject": {
"_id": 781586495786495,
"name": "MyName"
}
}
const MyModel = mongoose.model('MyModel', schema);
MyModel.findByIdAndUpdate(myJson.myobject._id, myJson.myobject, { upsert: true });

最佳答案

我使用了你的代码,它实际上按预期工作。它不返回任何错误也不返回任何内容的原因可能是您在模型上执行操作时未连接到数据库。

请考虑以下代码片段,它对我有用。

mongoose.connect('mongodb://localhost:27017/testingcollection').then(() => {
const schema = new mongoose.Schema({
_id: {
type: Number,
required: true
},
name: {
type: String,
required: true
}
}, { toJSON: { virtuals: true } });

const myJson = {
"myobject": {
"_id": 781586495786495,
"name": "MyName"
}
};

const MyModel = mongoose.model('MyModel', schema);
MyModel.findByIdAndUpdate(myJson.myobject._id, myJson.myobject, { upsert: true }).then(obj => {
mongoose.connection.close();
});
});

关于node.js - Mongoose:findByIdAndUpdate 方法既不更新也不插入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55531082/

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