我正在编写一个清理函数,它将从集合中删除所有无效的文档。为此,我有一个想法是将无效的_id值推送到数组变量并使用$ in删除。
type: "POST",
async: true,
url: "index.php?option=com_ajax&plugin=ajax&format=json",
dataType: "json",
将所有值推送到err Array之后,我有一个脚本来删除匹配的文档。但是,代码中缺少某些内容会导致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()
}
出错。
有人可以帮我纠正代码吗?
答案 0 :(得分:1)
您可以使用findByIdAndRemove({criteria}),根据返回值,您可以拥有逻辑。
答案 1 :(得分:1)
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将进入对我来说似乎不受欢迎的数组。