我正在编写一个清理功能,将从集合中删除所有无效文档。为此,我有一个将无效的_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/

10-12 15:29