Mongoose删除文档中的清除整个数组元素

时间:2014-06-14 18:07:41

标签: node.js mongodb mongoose

说我有

的记录
{
  "_id": "3536463525325645",
  "name": "james",
  "friends": [
    "jack",
    "john",
    "jeff",
    "michael"
  ]
}

我想清除整个数组,结果如下:

{
  "_id": "3536463525325645",
  "name": "james",
  "friends": [
  ]
}

我尝试使用$ pull但无济于事。 有任何建议的人吗?

2 个答案:

答案 0 :(得分:16)

您可以使用update声明执行此操作:

Person.update({name:"james"}, { $set: { friends: [] }}, function(err, affected){
    console.log('affected: ', affected);
});

答案 1 :(得分:0)

如果要删除所有元素,包括元素属性列表的键。 这是mongoDB未设置运算符的示例:

db.UM_PREAUTH_CASE.update(
{ 'Id' : 123},
{ $unset: { dataElements: ""} }
)

JSON看起来像这样:

{
"Id":123,
"dataElements" : [ 
        {
            "createdBy" : "Kishore Babu Diyyana",
            "createdByUserId" : 2020
        },
        {
            "createdBy" : "Diyyana Kishore",
            "createdByUserId" : 2021
        }
    ]
}