繁体   English   中英

MongoDB $ push嵌套数组

[英]MongoDB $push nested arrays

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

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');
        }
    });

先感谢您!

尝试使用代码belove,如果有任何错误,请对其进行注释。

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');
            }
        });

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM