如何使用MongoDB从对象中的每个项删除属性
我的文档中有这样一个对象:如何使用MongoDB从对象中的每个项删除属性,mongodb,Mongodb,我的文档中有这样一个对象: revisions: { <revisionId>: { ... someProperty: { ... }, }, ... } 谢谢你就快到了: { $unset: { someProperty: "" } } 从内存来看,值并不重要 然后,您可以使用光标遍历每个文档并删除不需要的属性 db.collection.find().forEach(<function>) 巨大的警告,完全未经测试,但应该给你一个起
revisions: {
<revisionId>: {
...
someProperty: { ... },
},
...
}
谢谢你就快到了:
{ $unset: { someProperty: "" } }
从内存来看,值并不重要
然后,您可以使用光标遍历每个文档并删除不需要的属性
db.collection.find().forEach(<function>)
巨大的警告,完全未经测试,但应该给你一个起点
每行
对于“修订”对象中的每个修订
删除someProperty属性
基于_id将revisions属性设置回集合
谢谢,这并不是我真正想要的,因为我试图避免服务器上的任何DB操作,因为它可以通过异步操作或集群中的其他服务器覆盖同时发生的更改,所以我认为我必须使用阵列而不是将此结构转换为基于阵列的结构完全有意义。走那条路!
db.collection.find().forEach(<function>)
t.forEach(function( row) {
var newRevisions = [];
row.revisions.fields.forEach( function( revision ){
delete revision.someProperty;
newRevisions.push(revision);
} )
t.update(
{ _id: row._id },
{ "$set": { "revisions": newRevisions} }
);
});