更新MongoDB中的嵌套数组

时间:2014-07-09 23:14:53

标签: node.js mongodb mongoose

我有很多这样的公司文件:

{
 "name" : "testCompany",
 "code" : "150",
 "access" : [ 
    {
        "name" : "x",
        "role" : "admin"
    }, 
    {
        "name" : "y",
        "role" : "User"
    }, 
    {
        "name" : "z",
        "role" : "User"
    }
   ]
 }

我想找一家代码值为' 150'的公司。然后删除名为' z'的访问权限。我写了这个,但它没有用。我没有收到任何错误:

collection.update(
{code: req.body.companyCode }, 
{$pull: {"access.$.name":  req.body.username}}, 
function(err, results) {
                res.send({error: err, affected: results});
                db.close();
            });

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

不熟悉节点,但我认为它应该是:

collection.update(
{code: req.body.companyCode }, 
{$pull: {"access": {"name": req.body.username}}}, 
function(err, results) {
                res.send({error: err, affected: results});
                db.close();
            });