で私がNoSQLの中に最初のステップを作り、次の質問持っています:のMongoDB - 選択のコレクションとインデックス列
は、私たちが「employeeNumberが」という名前のフィールドに、データベース内のいくつかのコレクションを持っていると言います。
このフィールドを持つすべてのコレクション名とこの列を使用しているすべてのインデックス名を選択するスクリプトを作成するにはどうすればよいですか?
で私がNoSQLの中に最初のステップを作り、次の質問持っています:のMongoDB - 選択のコレクションとインデックス列
は、私たちが「employeeNumberが」という名前のフィールドに、データベース内のいくつかのコレクションを持っていると言います。
このフィールドを持つすべてのコレクション名とこの列を使用しているすべてのインデックス名を選択するスクリプトを作成するにはどうすればよいですか?
短い回答:できません。
コレクションにはスキーマがないため、コレクションにすべてEmployeeNumber
のレコードが含まれているかどうかを確認できますが、それは恐ろしいものです。 MongoDBの列を持っていない
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);
}
})
});
});
}
興味深い答え:1.することはできません。 2.そうですね、それは恐ろしいでしょう。 3.さて、私はあなたのためにそれを書きましょう。 :-) – JohnnyHK
:よう
あなたがそれを望んでいた場合は、になります。 ColumはSQLのプロパティです。 Mongodbはさまざまなスキーマを持つドキュメントを格納します。 – user2647513
申し訳ありませんが、私はフィールドを意味します。投稿が修正されました。 – user306080
すべてのコレクションを繰り返し処理し、探しているものをそれぞれチェックします。ここにDoc:https://docs.mongodb.com/manual/reference/method/ – JohnnyHK