Mongodb如何删除/清除其他数组中的数组

时间:2015-05-13 00:44:06

标签: arrays mongodb collections

我现在想如何删除/清除另一个数组中的整个数组。

这就是我的数据的样子。我想知道如何清除阵列“companyvote”。有什么建议吗?

{
"_id" : ObjectId("55529cbb056565e80d963fac"),
"email" : "test@test.be",
"img" : "\img\1920x12001431477435530.jpg",
"companyvote" : [ 
    "Lovely inc", 
    "Behond imagination"
],
"__v" : 0
}

3 个答案:

答案 0 :(得分:2)

您可以使用 $ unset 删除此属性

db.companies.update({ "_id" : ObjectId("55529cbb056565e80d963fac")},
    {$unset:{'companyvote':1}});

或者,如果您只想清除阵列的内容,可以使用 $ set

db.companies.update({ "_id" : ObjectId("55529cbb056565e80d963fac")}, {$set:{'companyvote':[]}})

要删除所有记录的内容,只需按Id

删除过滤器即可
db.companies.update({}, {$set:{'companyvote':[]}})

答案 1 :(得分:0)

这对我来说真的很有用。

socket.on('deleteAllVotes', function() {
  Slides.find().exec(function(err, b) {
  for(var i = 0; i < b.length; i++) {
      var allslides = b[i].companyvote;
      Slides.update({companyvote:allslides}, {$set:{'companyvote':[]}},function(err, b) {});
    }
  });
   socket.emit('deleteAllVotes');
}); 

答案 2 :(得分:0)

您可以使用以下命令清除一个记录的数组内容

db.companies.update({}, {$set:{'companyvote':[]}}, {multi: true});
or
db.companies.update({}, {$unset:{'companyvote':1}}, {multi: true});

如果要清除多条记录,请不要忘记添加选项

int updated = getEntityManager().createNativeQuery("CREATE OR REPLACE FUNCTION pg_temp.get(IN nb BIGINT) RETURNS BIGINT AS 'SELECT $1 + $1' LANGUAGE sql IMMUTABLE").executeUpdate();
Object result = getEntityManager().createNativeQuery("SELECT pg_temp.get(2)").getSingleResult();
相关问题