在猫鼬中更新它们时如何访问每个文档字段[重复]

Posted

技术标签:

【中文标题】在猫鼬中更新它们时如何访问每个文档字段[重复]【英文标题】:how to access each document fields when updating them in mongoose [duplicate] 【发布时间】:2020-02-01 12:14:21 【问题描述】:

假设我有一个用户创建的新俱乐部,并且该用户选择了许多用户作为俱乐部的成员。 所以创建俱乐部后,我应该找到所有成员并将club._id 添加到他们的clubs 字段中。像这样

await User.updateMany(_id : $in: newClub.members, clubs: [...user.clubs, newClub._id]);

注意! user.clubs 是我需要的一个虚构变量。

我想知道是否有一种方法可以将新俱乐部推送到他们现有的俱乐部,而无需循环它们并将club._id 推送到他们的clubs 字段并保存它们。 谢谢

没错,在这种情况下,我的目标是对现有文档使用 push,但我的问题与 Push items into mongo array via mongoose 不同,因为我通常想知道在更新现有文档时如何访问现有文档中的字段。

【问题讨论】:

【参考方案1】:

您可以使用 MongoDB 聚合管道将新值推送到数组中

User.updateMany(
    _id : $in: newClub.members, 
     $push:  clubs: newClub._id  ,
    function (error, success) 
        if (error) 
            console.log(error);
         else 
            console.log(success);
        
    );
);

【讨论】:

以上是关于在猫鼬中更新它们时如何访问每个文档字段[重复]的主要内容,如果未能解决你的问题,请参考以下文章

如何在猫鼬中找到随机记录[重复]

如何通过填充字段在猫鼬中查找文档?

如何通过填充字段在猫鼬中查找文档?

如何在猫鼬中保存子文档的数组?

在猫鼬中填充+聚合[重复]

在猫鼬中仅更改整个嵌入式文档数组的一个字段