Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/396.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript MongoDb-按列选择集合和索引_Javascript_Mongodb - Fatal编程技术网

Javascript MongoDb-按列选择集合和索引

Javascript MongoDb-按列选择集合和索引,javascript,mongodb,Javascript,Mongodb,我正在NoSQL中迈出第一步,有以下问题: 假设数据库中有几个集合,字段名为“EmployeeNumber” 如何编写脚本来选择包含此字段的所有集合名称以及使用此列的所有索引名称?简短回答:您不能 集合没有模式,因此您可以检查所有集合,查看它们是否包含属性为EmployeeNumber的记录,但这将非常糟糕 如果你想,它看起来像: function findCollectionsWithEmployeeNumber(cb){ var collectionsWithEmployeeNumb

我正在NoSQL中迈出第一步,有以下问题:

假设数据库中有几个集合,字段名为“EmployeeNumber”


如何编写脚本来选择包含此字段的所有集合名称以及使用此列的所有索引名称?

简短回答:您不能

集合没有模式,因此您可以检查所有集合,查看它们是否包含属性为
EmployeeNumber
的记录,但这将非常糟糕

如果你想,它看起来像:

function findCollectionsWithEmployeeNumber(cb){
    var collectionsWithEmployeeNumber = [];
    var collectionsToCheck = {};
    db.collectionNames(function(err, collections){
        collections.forEach(function(c){collectionsToCheck[c]=false});
        if(err) {
            throw err;
        }
        collections.forEach(function(collection){
            db[collection].findOne({EmployeeNumber : {$exists :true}}, function(err, res){
                if(res) {
                    collectionsWithEmployeeNumber.push(collection);
                }
                collectionsToCheck[collection] = true;
                var allChecked = collectionsToCheck.reduce(function(previous, current){return previous && current}, true)
                if(allChecked) {
                    cb(collectionsWithEmployeeNumber);
                }
            })
        });
    });
}

简单回答:你不能

集合没有模式,因此您可以检查所有集合,查看它们是否包含属性为
EmployeeNumber
的记录,但这将非常糟糕

如果你想,它看起来像:

function findCollectionsWithEmployeeNumber(cb){
    var collectionsWithEmployeeNumber = [];
    var collectionsToCheck = {};
    db.collectionNames(function(err, collections){
        collections.forEach(function(c){collectionsToCheck[c]=false});
        if(err) {
            throw err;
        }
        collections.forEach(function(collection){
            db[collection].findOne({EmployeeNumber : {$exists :true}}, function(err, res){
                if(res) {
                    collectionsWithEmployeeNumber.push(collection);
                }
                collectionsToCheck[collection] = true;
                var allChecked = collectionsToCheck.reduce(function(previous, current){return previous && current}, true)
                if(allChecked) {
                    cb(collectionsWithEmployeeNumber);
                }
            })
        });
    });
}

Mongodb没有列。列是SQL的一个属性。Mongodb使用不同的模式存储文档。对不起,我指的是字段。修复了帖子。遍历所有集合,并检查每个集合是否有您要查找的内容。Doc here:Mongodb没有列。列是SQL的一个属性。Mongodb使用不同的模式存储文档。对不起,我指的是字段。修复了帖子。遍历所有集合,并检查每个集合是否有您要查找的内容。博士:有趣的答案:1。你不能。2.嗯,你可以,但那太可怕了。3.好的,让我给你写一下。:-)有趣的回答:1。你不能。2.嗯,你可以,但那太可怕了。3.好的,让我给你写一下。:-)