在mongoose中插入嵌套数组

时间:2016-02-23 15:06:02

标签: node.js mongodb mongoose

我有一个类似

的猫鼬模型
module.exports = mongoose.model('ContactBirthday', {
    email: {
        type: String,
        unique: true
    },
    birthday: {
        "1": {
            "1": [
                {
                    "firstName": String,
                }
            ],
            "2": [
                {
                    "firstName": String,
                }
            ]
         }
     }
   }

我想在birthday.1.2中推送一个值。我在变量bMonth和bDate中有值1和2,并使用以下代码进行推送,但不知何故只插入了电子邮件

var bMonth = req.body.contact.birthday.month;
var bDate = req.body.contact.birthday.date;

                                            ContactBirthday.findOneAndUpdate({
                                                email: result.message.email
                                            }, {
                                                $push: {
                                                    birthday: {
                                                        bMonth: {
                                                            bDate: {
                                                                "firstName": req.body.contact.birthday.firstName,
                                                                "_id": data[0].contacts[data[0].contacts.length - 1]._id
                                                            }
                                                        }
                                                    }
                                                }
                                            }, {
                                                upsert: true
                                            }, function (err, result) {
                                                if (err)
                                                    return res.send(500, {
                                                        error: err
                                                    });
                                                else
                                                    res.sendStatus(200);


                                            });

1 个答案:

答案 0 :(得分:1)

您可以为您的联系人模型添加生日,并每天查询

 Contact.find({
      'birthday': {
           $gte: new Date(2016, 0, 1), 
           $lt : new Date( 2016, 0, 2)
      }
 }, function(err, results){
 ...
 }); 

在2016年1月1日获得所有联系人的生日