如何从mongodb中深层嵌套的数组中提取数据?

时间:2016-01-13 13:37:49

标签: arrays node.js mongodb mongoose mongodb-query

您好我的mongoose架构中有深层嵌套数组。我想从深度嵌套的数组中提取记录。任何人都可以帮助编写moongoose查询。我试过这个

var condition = {
                    _id: user,
                    $and: [
                        {
                            'cardInfo.cards': {
                                $elemMatch: {
                                    _id: cardId,
                                    isActive: '0'
                                }
                            }
                        },
                        {
                            'cardInfo.cards': {
                                $elemMatch: {
                                    _id: { $exists: true }
                                }
                            }
                        }
                    ]

                };
 var dataToUpdate = {
      $pull: {'cardInfo.cards': { _id: cardId }}
 };
 var options = {
      lean: true
 }

对于架构,请查看MyAnotherQuestion,并尝试回答该问题。上面的查询不起作用,但在mongodb中,如果我使用ObjectId作为cardId

,它工作正常

1 个答案:

答案 0 :(得分:0)

好的,我已经能够解决这个问题了。我所做的只是在选项变量中添加了另一个参数,如:

var options = { strict: false, lean: true}

strict: false是使我的查询起作用的参数,我的mongoose查询是相同的,即

Customer.update(condition, dataToUpdate , options, anycallback)

是的,它对我有用。