标签: findoneandupdate

Mongoose findOneAndUpdate 未定义设置为 null

我无法理解未定义和 null 的 findOneAndUpdate 。

创建对象时:

const user = new User({
   _id: 1,
   name: "foo",
   address: undefined
});
user.save()
Run Code Online (Sandbox Code Playgroud)

它正在创建一个只有名称而没有地址的新文档:

{
   name: "foo"
}
Run Code Online (Sandbox Code Playgroud)

如果我在 findOneAndUpdate 之后使用相同的逻辑:

findOneAndUpdate({_id: 1}, {
   name: "bar",
   address: undefined
});
Run Code Online (Sandbox Code Playgroud)

数据库中的文档现在将包含一个nullfor 地址:

{
   name: "bar",
   address: null,
}
Run Code Online (Sandbox Code Playgroud)

我不明白为什么。

我希望当我为其设置一个值时undefined应该删除当前项目,因此,如果我有一个带有 的文档address: "somewhere",或者甚至根本没有address,我希望该设置undefined应该删除它(或者如果不存在则不设置) ,而不是将其设置为 null。

这是我能以某种方式实现的吗?或者这是 findOneAndUpdate 的行为?蒙戈数据库?(或猫鼬?)

预先感谢,埃泰。

null undefined mongoose node.js findoneandupdate

4
推荐指数
1
解决办法
4041
查看次数

标签 统计

findoneandupdate ×1

mongoose ×1

node.js ×1

null ×1

undefined ×1