2017-09-30 29 views
0

我有以下結構的文件,有沒有可能(例如,使用$正則表達式)只返回其開始位置的元素「^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

我不認爲它可能對查詢與$正則表達式的文件密鑰。如果它是可以調整的文件結構,我建議如下:

{ 
    "_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, 
       } 
      } 
     ] 
    } 
} 

鑑於這種結構,這是很容易只返回原始的條目,您感興趣的是:

db.col1.find({ "_id" : "1" },{ "positions.raw" : true }); 
相關問題