2017-03-24 7 views
0

特定の名前から始まるコレクション内の配列からキー名を取得する方法。配列キー名はmongodbの特定の名前で始まります

var regExp=/specific name of key/ 

var cur = db.collectionName.find(); 
cur.forEach(function(doc) 
{{ Object.keys(doc).forEach(function(key) 
    {return key.match(regExp)})}} 

var allKeys = {}; 
var regExp=/Alar/ 
db.collectionName.find().forEach(function(doc){Object.keys(doc).forEach(function(key){allKeys[key]=1})}); 
allKeys; 

上記のコード出力。

{ 
    "_id" : 1, 
    "id" : 1, 
    "type" : 1, 
    "Name" : 1, 
    "device_type" : 1, 
    "grammerData" : 1, 
    "code" : 1, 
    "Command" : 1, 
    "description" : 1, 
    "created_by" : 1, 
    "last_updated_time" : 1 
} 
now i want some script from which i can find those keys which start with specific name. 

正しく機能しない場合は、お手伝いをしてください。

答えて

0

次のようにMongoDBで正規表現検索を行うことができます。

db.collectionname.find({field:/abc/},function(err,data) { 
    //your code 
} 

これはABCで始まるすべての文書を検索します。複数の正規表現から検索したい場合は、配列内の値を検索する$in演算子を使用することができます。

db.collectionName.find({field:{$in:[/abc/,/what/]}},function(err,data){ 
    //your code 
} 

これは、フィールドは「フィールド」はABCで始まるするすべての文書を返します何か

私の答えは役に立ちました。

+0

キー名だけが必要ですか? –

+0

どういう意味ですか? –

+0

var allKeys = {}; db.collectionName.find()。forEach(function(doc){Object.keys(doc).forEach(function(key){allKeys [key] = 1}))); allKeys; これで私はキーの名前を見ることができます、今私は特定の名前で始まるキーの名前をthodeしたいですか? –