gpt4 book ai didi

node.js - findOneAndUpdate 不返回原始文档

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

环境

node -v
v10.0.0
// native driver "mongodb": "^3.0.8",

期望的行为

我想更新文档并返回原始文档。

实际行为

正在返回更新的文档,而不是原始文档。

我尝试过的

最初我正在查看findAndModify:

http://mongodb.github.io/node-mongodb-native/3.1/api/Collection.html#findAndModify

但是那里的文档说它已被弃用并使用 findOneAndUpdate、findOneAndReplace 或 findOneAndDelete 代替

所以我尝试了:

collection.findOneAndUpdate(filter, update, function(err, result) {
if (err) {
res.send(err);
} else {

// find object in array of objects ('statements') and return the 'text' property value
var old_text = result.value.statements.find(x => x.id === "my_great_id").text;

console.log(old_text);

}
});

http://mongodb.github.io/node-mongodb-native/3.1/api/Collection.html#findOneAndUpdate

文档说选项 returnOriginal 是默认选项,但它记录的是更新后的值,而不是原始值。

编辑:

问题出在代码的其他地方 - 上面的代码按预期工作。

最佳答案

默认情况下,findOneAndUpdate 函数返回原始文档。但是将 {new: false} 添加到 findOneAndUpdate 函数的第三个参数可能适合您的情况。

collection.findOneAndUpdate(filter, update, {new: false}, function(err, result) {
if (err) {
res.send(err);
} else {

// find object in array of objects ('statements') and return the 'text' property value
var old_text = result.value.statements.find(x => x.id === "my_great_id").text;

console.log(old_text);

}});

关于node.js - findOneAndUpdate 不返回原始文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52126801/

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