我正在编写一个清理功能,将从集合中删除所有无效文档。为此,我有一个将无效的_id值推入数组变量并使用$ in删除的想法。
function(scan){
var err
for(var n=1;n<scan;n++){
var doc = db.zeroDimFacts.findOne({_id:n}) ,nKeys =0;
for(k in doc)
nKeys++
if(nKeys <5)
err = n.toArray()
}
将所有值推送到err Array后,我有了一个脚本来删除匹配的文档。但是,代码缺少某些内容,使我在
n.toArray()
处出错。有人可以帮助我更正代码吗?
最佳答案
function(scan) {
var doc;
var nKeys;
var err = [];
for(var n = 1; n < scan; ++ n) {
doc = db.zeroDimFacts.findOne({_id: n})
nKeys = 0;
for(k in doc) {
++ nKeys;
}
if(nKeys < 5) {
err.push(n);
}
}
return err;
};
注意对findOne()的调用。当它返回null时,n将进入数组,这对我来说似乎是不可取的。
关于javascript - mongodb将值插入数组变量,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38368038/