您可以在此情況下,使用$where
。如果任何未知的按鍵應該是由陣列定義的集合:
db.collection_name.find({$where: function() {
var myarr = ["unknown_key", "arr1", "arr2", "arr3"];
for(var key in this.field2) {
var subkey = key.substr(0, key.length-1); //get unknown_key from unknown_keyN
var id = myarr.indexOf(subkey); // check if in array
if (id != -1) return true;
}
return false;
}})
如果所有的未知鍵應該是由陣列定義的集合:
db.collection_name.find({$where: function() {
var myarr = ["unknown_key", "arr1", "arr2", "arr3"];
if (this.field2 != undefined) {
for(var key in this.field2) {
var subkey = key.substr(0, key.length-1); //get unknown_key from unknown_keyN
var id = myarr.indexOf(subkey); // check if in array
if (id == -1) return false;
}
return true;
} else {
return false;
}
}})
是你的數組包含此array(「unknown_key1」,「unknown_key2」,....,「」unknown_keyN「)? – Yogesh 2014-11-24 06:12:48
沒有我的數組包含其他鍵我想查找所有未知鍵是陣列中其他鍵之一的所有文檔 – rgio 2014-11-24 10:53:53
It意味着一些未知的密鑰出現在陣列中嗎? – Yogesh 2014-11-24 11:16:17