node.js - Mongoose,将数据添加/更新到集合的一组文档

标签 node.js mongodb mongoose mongoose-schema

大家好,这是我的问题情况:

我的类别模型如下所示:

schema: {   
    _id: String,
    name: String,
    overview: String,
    courses: [
        {
            _id: String,
            name: String
        }
    ]
}

我在上面的集合中记录了多个类别类别

我需要什么

我有一个[数组],如下所示:Categories._id:

[
  '5812f3cb04700f2563c0e56a',
  '5812f3ff04700f2563c0e56b',
  ...
]

我想要的只是PUSH这个对象{_id:5812f3ff04700f2563c0e56b, name:'SOMETHING'}_id数组中列出的所有文档

我尝试过的

Categories.update({
        '_id': {
            $in : array_of_IDs
        } 
    },
    {
        $push :{
            'courses':{ _id: ret._id , name: ret.title }
        }
    }, function(err, respp){
        if(err) return res.negotiate(err);
        else{
            req.addFlash('success', 'Categories updated successfully.');
            return res.redirect('/new-course');
        }
    }
);

上面的代码仅更新一个集合(ID 数组中具有第一个 ID 的集合)

请帮忙!

谢谢

最佳答案

可以尝试使用multi: true作为选项

Categories.update({
        '_id': {
            $in : array_of_IDs
        } 
    },
    {
        $push :{
            'courses':{ _id: ret._id , name: ret.title }
        }
    },{ multi: true }, function(err, respp){
        //....
    }
);

关于node.js - Mongoose,将数据添加/更新到集合的一组文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40301098/

相关文章:

python - 如何在 MongoDB 中创建字段后使其不可变?

node.js - 如何使用 .forEach() 插入多个集合并检查它是否存在

node.js - 如何从 Mongoose 模式中的嵌入对象中删除 _id?

javascript - 如何使用 MongoDB 和 Mongoose/Express 将时间日期 UTC 转换为本地,反之亦然?

node.js - GET 的表达参数长度限制

javascript - 使用 Node js 请求模块从 API 获取 JSON,无法访问子类别

python - 从python脚本获取输出到django

node.js - Mongoose 聚合匹配不适用于正则表达式

mongodb - 两次调用Future后出现NoSuchMethodError

node.js - Mongoose,如何清空集合