gpt4 book ai didi

javascript - MongoDB findAndModify 不与和尚一起工作

转载 作者:可可西里 更新时间:2023-11-01 10:04:06 27 4
gpt4 key购买 nike

我正在尝试将 findAndModify 与 node.js mongodb 模块 monk 一起使用。这是我正在使用的方法,它会抛出一个 500 cmd 中的 错误:

  notesCollection.findAndModify({_id:_id},[],{_id:_id,title:title,content:content},{'new':true,'upsert':true},function(err,doc){
if(err)
console.error(err);
else
{
console.log("Find and modify successfull");
console.dir(doc);
}
});

I obtained the method signature here .我收到一个看起来像这样的错误,但没有提供任何信息:

 POST /notes/edit/542bdec5712c0dc426d41342 500 86ms - 1.35kb

最佳答案

Monk 实现的方法比 Node native 驱动程序提供的方法更符合方法签名的 shell 语法。所以在这种情况下,.findAndModify() 的“外壳”文档更适合这里:

  notescollection.findAndModify(
{
"query": { "_id": id },
"update": { "$set": {
"title": title,
"content": content
}},
"options": { "new": true, "upsert": true }
},
function(err,doc) {
if (err) throw err;
console.log( doc );
}
);

还注意到您应该使用 $set运算符(operator),甚至可能是 $setOnInsert运算符,您只希望在创建文档时应用字段。当像这样的运算符被重新应用时,“整个”文档将替换为您为“更新”指定的任何内容。

您也不需要在更新部分提供“_id”字段,因为即使发生“更新插入”,语句的“查询”部分中存在的任何内容都暗示要在新文档中创建.

monk 文档还提示了用于 method signature 的正确语法。 .

关于javascript - MongoDB findAndModify 不与和尚一起工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26154132/

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