gpt4 book ai didi

javascript - 删除 mongodb 中具有空数组值的键

转载 作者:行者123 更新时间:2023-12-01 02:22:38 24 4
gpt4 key购买 nike

当我在数组中留下一项并将其删除时,该字段将变为空。是否有任何选项可以检查是否还剩下一个元素,然后使用 undefined 更新键而不是删除?

这是我所拥有的:

User.aggregate([
{$match: {email: {$in: [email, friendEmail]}}},
{
$project: {
friendSentRequests: {$size: {"$ifNull": ["$friendSentRequests", []]}},
friendReceivedRequests: {$size: {"$ifNull": ["$friendReceivedRequests", []]}},
}
}],
(err, result) => { ... }
);

通过上面编写的方法,我确实获得了数组大小,但是如果一个文档没有第二个文档所拥有的 key ,则 batch 会抛出数组类型为 missing 的错误。除非我不应该在 (err, result) => {..} 函数中进行任何更新,并且还有另一种推荐的方法来更新对象。

我不想设置multi,因为我想通过batch更新来自不同文档的两个不同 key ,并且我无法获取每个 key 的数组长度这些领域。除非我误解了 multi 的工作原理。

最佳答案

如果您想确认数组中的元素数量,例如您想检查数组是否有一个元素,则:

{
$match:{
"myArray" :{ $size : 1 }
}
}

并检查数组是否不存在:

   {
$match:{
"myArray" :{ $exists: false}
}
}

关于javascript - 删除 mongodb 中具有空数组值的键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49089283/

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