繁体   English   中英

在猫鼬中创建数组元素

[英]Creating a array element in mongoose

这是我的架构。

team_year: String,
team:  [{
    _leader: String,
    _member:[{
        _name: String, 
        _phone: String,
        _age: Number,
        _gender: String, 
        _comment:[{
            _date: String, 
            _contents: String,
            _attendance: Boolean
        }]
    }]
}]

我有资料

{ team_year: 2015
    team: [
        {
          _leader: tom
          _member: [
              {_name: mike,
               _phone: 2222
          ]
        },
        {
          _leader:jack,
          _member: []
        }
    ]
}

我想注册杰克的团队成员。

    team_schema.findOneAndUpdate(
        {team_year: '2015', 'team._leader' : 'jack'}, 

        {$push: {
                'team._member': req.body
            }
        },
        function(err, post){
        if (err) next(err);
        res.end("success");
    }); 

但这不起作用。 请帮我。

我使用Node.js + Express + MongoDB

我不擅长英语。 T ^ T

您需要指定要为其插入对象的对象的索引(嵌套数组)。 为此,您可以使用MongoDB提供的位置运算符('$')。 有关更多信息,请参见此处

因此,此查询应该工作:

team_schema.findOneAndUpdate(
    {team_year: '2015', 'team._leader' : 'jack'}, 

    {$push: {
            'team.$._member': req.body              //The $ symbol resolves to an index from the query
        }
    },
    function(err, post){
    if (err) next(err);
    res.end("success");
}); 

暂无
暂无

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

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