Node.js Mongoose清除文档中的整个数组元素

Node.js Mongoose清除文档中的整个数组元素,node.js,mongodb,mongoose,Node.js,Mongodb,Mongoose,假设我有一张 { "_id": "3536463525325645", "name": "james", "friends": [ "jack", "john", "jeff", "michael" ] } 我想清除整个阵列,因此结果将是: { "_id": "3536463525325645", "name": "james", "friends": [ ] } 我尝试使用$pull,但没有效果。 有人有什么建议吗?你可以用一

假设我有一张

{
  "_id": "3536463525325645",
  "name": "james",
  "friends": [
    "jack",
    "john",
    "jeff",
    "michael"
  ]
}
我想清除整个阵列,因此结果将是:

{
  "_id": "3536463525325645",
  "name": "james",
  "friends": [
  ]
}
我尝试使用$pull,但没有效果。 有人有什么建议吗?

你可以用一句话来表达:

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

如果要删除所有元素,包括元素属性列表的键。 以下是mongoDB unset运算符的示例:

db.UM_PREAUTH_CASE.update(
{ 'Id' : 123},
{ $unset: { dataElements: ""} }
)
JSON如下所示:

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

您的
$pull
查询是什么?您可以执行
friends=new Array()
然后保存它。我认为这是最好的选择,如果你只想删除阵列中的所有内容,有没有办法使用async/await和update?