当前位置: 首页 > 知识库问答 >
问题:

如何自动添加_id到集合项中的数组中的对象?

姜学海
2023-03-14
{
    name: string
    _id: (auto set)
    items: array[
        name: string
        url: string
        items: array[
            {
                name: string,
                url: string,
                items: []
            }
        ]
    ]
}
Menu.findByIdAndUpdate(
    req.body.parentid, 
    {
        $push: {
            items: {
                name: req.body.item.name, 
                url: req.body.item.url,
                items: []
            }
        }
    },
    {
        safe: true, 
        upsert: true, 
        new: true
    },
    function(err, model) {
        if (err !== null) {
            console.log(err);
        }
    }
);

这可以正常工作,但它不会向插入items数组的每个对象添加_id。我真的需要每个人的身份证。

我猜它来自于使用的方法findByIdandUpdate,因为它看起来更像是一个更新而不是插入。如果我的想法是正确的。

使用mongodb 3.2.10和mongoose 4.7.6。

共有1个答案

曹季同
2023-03-14

在这个线程中找到了解决方案:mongoDB:为每个添加到数组字段的新子创建ObjectId

基本上,添加

var ObjectID=require('mongodb').ObjectID;

$push: {
    items: {
        _id: new ObjectID(),
        name: req.body.item.name, 
        url: req.body.item.url,
        items: []
    }
}
 类似资料:
  • 建议我有这个嵌套数组的对象 所以我想用新的动态id将对象插入到服务数组中,我试过了 但我明白了 而我想得到这个 所以我怎么能这样做提前感谢帮助

  • 我正在尝试使用android studio中的Firestore制作一个课程添加系统。 当用户添加一个课程时,它将被添加到Fi还原中,并且在该课程集合中会有一个学生和教师集合。 但我不知道怎么做。 如果我为学生和教师集合编写代码,它会添加两个不同的集合,但我希望在一个课程集合中有两个集合,学生和教师。 我该怎么做呢? 我分享我写的代码。 添加课程类

  • 问题内容: 我是Java的初学者,正在尝试创建自定义类的数组。假设我有一个名为car的类,并且我想创建一组称为Garage的汽车。如何将每辆车添加到车库?这就是我得到的: 问题答案: 如果要使用数组,则必须保留一个包含车库中汽车数量的计数器。最好使用而不是数组:

  • 如果有人能在这里帮助我,我会非常喜欢它:)

  • 我有一个类来代表一个玩家的手牌。但是,我(在另一个类中)有一个数组列表,我想在其中表示一堆玩家手。问题是我不知道如何在多手牌的数组列表中将一张牌添加到手牌中。我有一个代表卡牌和一副牌的类,效果很好。我只是试图了解如何将对象添加到数组列表中的对象。谢谢!

  • 问题内容: 如何将对象添加到数组(使用javascript或jquery)?例如,此代码有什么问题? 我想使用此代码在function1数组中保存许多对象,并调用function2在数组中使用该对象。 如何将对象保存在数组中? 如何将对象放入数组并将其保存到变量? 问题答案: 使用Array.push()将任何东西放入数组。 有关数组的更多信息 一次添加多个项目 将项目添加到数组的开头 将一个数组