从Mongoose中的子文档中删除数组

时间:2017-07-26 13:54:43

标签: javascript arrays node.js mongodb mongoose

我想从MongoDB中删除子文档的数组。在这里,您可以看到数据集:

{
    "_id" : ObjectId("5971cd685369fa57f41a6af3"),
    "msgtyp" : 1,
    "number" : "201700005",
    "name" : "name",
    "status" : null,
    "position" : [ 
        {
            "pos" : 1,
            "number" : "9874326",
            "value" : "art 123",
        }, 
        {
            "pos" : 2,
            "number" : "125124",
            "value" : "art 321",
        }
    ]
}

我想根据"pos" : 1posnumber删除整个数组条目。预期文件应为:

{
    "_id" : ObjectId("5971cd685369fa57f41a6af3"),
    "msgtyp" : 1,
    "number" : "201700005",
    "name" : "name",
    "status" : null,
    "position" : [ 
        {
            "pos" : 2,
            "number" : "125124",
            "value" : "art 321",
        }
    ]
}

我尝试了以下代码:

exports.delete_position = function(req, res) {
  auftrag.remove(
    {
      "number": req.body.number, 
      "position.pos": req.body.pos
    }, function(err, position){
    if(err)
      res.status(400).send(err);
    res.status(200).json(position);
  });
};

不幸的是,无法删除数组条目。你能告诉我如何删除这个条目吗?

不使用posnumber删除条目并改为使用_id会更好/最佳做法吗?

谢谢!

0 个答案:

没有答案