删除 mongodb 个文档字段
Remove mongodb document fields
我想更新我的文档结构,其中我希望根据值删除特定字段。
"id" : "company",
"keys" : {
"0" : {
"key_name" : "Name",
"section_head" : "Profile"
},
"1" : {
"key_name" : "Sector",
"section_head" : "Profile"
},
"2" : {
"key_name" : "SubSector",
"section_head" : "Profile"
}}
我想从 key_name 是子部门且 id 是公司的键中删除。
如果您不知道索引,您的解决方案应该类似于:
var doc = db.myDoc.find({_id : "company"});
var keys = [];
for (var key in doc) {
if (doc.hasOwnProperty(key) && key.key_name === "SubSector"){
keys.push(key);
}
}
var arrayLength = keys.length;
for (var i = 0; i < arrayLength; i++) {
delete doc[keys[i]];
}
db.myDoc.save(doc);
这是在 MongoDb document
中使用动态密钥时的主要问题
当然你可以优化这个解决方案,但它留给你 (-:
--- 编辑 ---
db.eval(function () {
db.myDoc.find({id: "company"}).forEach(function (e) {
var keys = [];
for (var key in doc) {
if (doc.hasOwnProperty(key) && key.key_name === "SubSector"){
keys.push(key);
}
}
var arrayLength = keys.length;
for (var i = 0; i < arrayLength; i++) {
delete doc[keys[i]];
}
db.myDoc.save(doc);
});
});
我想更新我的文档结构,其中我希望根据值删除特定字段。
"id" : "company",
"keys" : {
"0" : {
"key_name" : "Name",
"section_head" : "Profile"
},
"1" : {
"key_name" : "Sector",
"section_head" : "Profile"
},
"2" : {
"key_name" : "SubSector",
"section_head" : "Profile"
}}
我想从 key_name 是子部门且 id 是公司的键中删除。
如果您不知道索引,您的解决方案应该类似于:
var doc = db.myDoc.find({_id : "company"});
var keys = [];
for (var key in doc) {
if (doc.hasOwnProperty(key) && key.key_name === "SubSector"){
keys.push(key);
}
}
var arrayLength = keys.length;
for (var i = 0; i < arrayLength; i++) {
delete doc[keys[i]];
}
db.myDoc.save(doc);
这是在 MongoDb document
当然你可以优化这个解决方案,但它留给你 (-:
--- 编辑 ---
db.eval(function () {
db.myDoc.find({id: "company"}).forEach(function (e) {
var keys = [];
for (var key in doc) {
if (doc.hasOwnProperty(key) && key.key_name === "SubSector"){
keys.push(key);
}
}
var arrayLength = keys.length;
for (var i = 0; i < arrayLength; i++) {
delete doc[keys[i]];
}
db.myDoc.save(doc);
});
});