2017-09-30 14 views
0

次の構造を持つ文書があります。たとえば、$ regexを使用して、^raw_ "(raw_要素には多くのバリエーションがあります)?正規表現を使用して文書の特定のサブ要素を検索するには

私は簡単な投影ですべての「位置」要素を簡単に返すことができますが、raw_で始まる要素を引き出すことができるかどうかはわかりません(私は試しました$ elemMatchのいくつかのバリエーションがありますが、運がまったくありません)。

どういうわけかできますか?もしそうなら、誰かが例を挙げることができますか?

{ "_id": '1', "positions": { "raw_1": { "123": 125.30, "456": 125.30, "789": 125.30, }, "raw_2": { "123": 125.30, "456": 125.30, "789": 125.30, }, "calc_1": { "123": 125.30, "456": 125.30, "789": 125.30, }, "calc_2": { "123": 125.30, "456": 125.30, "789": 125.30, } } }

答えて

0

私はそれが可能$の正規表現とドキュメントキーに対してクエリを実行するとは思いません。文書の構造を調整することが可能なら、私は次のことをお勧め:

db.col1.find({ "_id" : "1" },{ "positions.raw" : true }); 
:この構造を考えると

{ 
    "_id": "1", 
    "positions": { 
     "raw": [ 
      { 
       "entry": "1", 
       "values": { 
        "123": 125.30, 
        "456": 125.30, 
        "789": 125.30, 
       } 
      }, 
      { 
       "entry": "2", 
       "values": { 
        "123": 125.30, 
        "456": 125.30, 
        "789": 125.30, 
       } 
      } 
     ], 
     "calc": [ 
      { 
       "entry": "1", 
       "values": { 
        "123": 125.30, 
        "456": 125.30, 
        "789": 125.30, 
       } 
      }, 
      { 
       "entry": "2", 
       "values": { 
        "123": 125.30, 
        "456": 125.30, 
        "789": 125.30, 
       } 
      } 
     ] 
    } 
} 

、あなたが興味を持っているだけで、生のエントリを返すためにはるかに簡単です

関連する問題