我现在想如何删除/清除另一个数组中的整个数组。
这就是我的数据的样子。我想知道如何清除阵列“companyvote”。有什么建议吗?
{
"_id" : ObjectId("55529cbb056565e80d963fac"),
"email" : "test@test.be",
"img" : "\img\1920x12001431477435530.jpg",
"companyvote" : [
"Lovely inc",
"Behond imagination"
],
"__v" : 0
}
答案 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();