【问题标题】:MongoDB $push nested arraysMongoDB $push 嵌套数组
【发布时间】:2018-11-27 20:39:10
【问题描述】:

我正在写一个美食博客。我想为我的数据库中的食物食谱实现以下结构。

recipes : [
 {mainCategoryRecipe1: {...}},
 {mainCategoryRecipe2: {...}},
 subcategory1: [
   {recipe1: {...}}
 ]
]

我正在发布一个带有选择字段的表单,该字段指示正确的类别和子类别(如果需要)。我可以在 Node.js 后端访问这些。

我不知道如何 $push 进入数据库,以便数据遵循正确的结构。我正在使用 MongoJS。我对此的尝试解决了这个结构:

recipes : [
 {subcategory1 : recipe1[...]},
 {subcategory1 : recipe2[...]}
]

这是我的代码:

db.collection.findAndModify({
        query:{_id: mongojs.ObjectId(userId)},
        update: { $push: {
                recipes : {
                            [recipe.subcategory] : recipe
                          }
            }},
        new: true
    }, function(err, doc, lastErrorObject){
        if(err){
            throw (err)
        } else {
            //console.log(recipe)
            res.render('/success');
        }
    });

提前谢谢你!

【问题讨论】:

标签: arrays node.js mongodb express mongojs


【解决方案1】:

尝试使用亲爱的代码,如果您有任何错误,请发表评论。

db.collection.findOneAndUpdate({
            {_id: new ObjectID(userId)},
            { $push: {
                    recipes : {
                                [recipe.subcategory] : recipe
                              }
                }},
            returnOriginal: false
        }, function(err, doc, lastErrorObject){
            if(err){
                throw (err)
            } else {
                //console.log(recipe)
                res.render('/success');
            }
        });

【讨论】:

    猜你喜欢
    • 2020-12-13
    • 2018-10-30
    • 2017-07-26
    • 2014-10-29
    • 2013-06-22
    • 2015-06-20
    • 1970-01-01
    相关资源
    最近更新 更多