Mongoose findOneAndUpdate()未使用NodeJS更新mongodb中的集合
我是一个相当新的开发人员,试图在使用NodeJS、MongoDB和Mongoose的API端点的帮助下开发一个简单的CRUD应用程序。当使用Mongoose驱动程序的findOneAndUpdate方法更新文档时,我没有得到正确的结果 集合是在mongoimport命令的帮助下通过导入CSV文件形成的。考虑一下我有以下的文件。Mongoose findOneAndUpdate()未使用NodeJS更新mongodb中的集合,mongoose,Mongoose,我是一个相当新的开发人员,试图在使用NodeJS、MongoDB和Mongoose的API端点的帮助下开发一个简单的CRUD应用程序。当使用Mongoose驱动程序的findOneAndUpdate方法更新文档时,我没有得到正确的结果 集合是在mongoimport命令的帮助下通过导入CSV文件形成的。考虑一下我有以下的文件。 { "_id" : ObjectId("599c8da6b18e3117b09ea299"), "MetaKey" : "lastWPSyncedStatus", "Me
{
"_id" : ObjectId("599c8da6b18e3117b09ea299"),
"MetaKey" : "lastWPSyncedStatus",
"MetaValue" : "Running"
}
这里的元键是lastWPSyncedStatus,它对应的值是Running
我在这里需要做的就是,当一个“/test/client”端点被点击时,我想更新lastWPSyncedStatus以停止。URL使用PUT HTTP方法提交以进行更新
RosterOptions.findOneAndUpdate(
{
'MetaKey' : 'lastWPSyncedStatus'
},
{
$set:
{
'MetaValue': 'STOP'
}
},
{
new: true
},
function(err,data){
if(err){
res.send(err);
}
res.json(data);
// console.log(data);
}
)
我正在尝试将元键为“lastWPSyncedStatus”的文档的元值更新为“STOP”。我已经尝试在nodejs中提交查询,它返回时没有任何错误,但是mongodb没有更新。另外,当我为mongoose设置调试时,以下查询将提交给mongoose
Mongoose: rosterOptions.findOne({ MetaKey: 'lastWPSyncedStatus' }, { new: true, fields: {} })
输出为:
{
"_id": "599c8da6b18e3117b09ea299",
"MetaKey": "lastWPSyncedStatus",
"MetaValue": "Running"
}
我无法确定问题所在。我也尝试过使用update方法,但得到了以下结果
{
"ok": 0,
"n": 0,
"nModified": 0
}
当我尝试在mongodb中运行函数update()时,我的文档已正确更新
我提到并试图以类似的方式实施它。如果有人能指导我解决这个问题,我会很高兴。我找到了问题的答案。我在正确定义模式时犯了一个错误,因为mongoose无法正确识别我的集合。我已经通过修改模式解决了这个问题。将其标记为答案 你能分享
RosterOptions
collection的猫鼬模式吗?嘿,@ryder我已经正确地解决了这个问题。我在正确定义模式时犯了一个错误,因此我遇到了这个问题。谢谢你的快速回复。我一直在转圈,谢谢分享!