2016-08-15 45 views
1

您可以/如何用LoopbackJS在模型的json定義中定義嵌入式文檔,而無需創建表示子文檔的模型?Loopback和MongoDB嵌入式文檔定義JSON模型

例如,請考慮以下這個文件的MongoDB:

{ 
     _id: ObjectId("some_mongodb_id"), 
     subDocs: [ 
      { 
       "propertyA": "a1", 
       "propertyB": "b1" 
      }, 
      { 
       "propertyA": "a2", 
       "propertyB": "b2" 
      } 
     ] 
} 

我可以回送建立兩個模型:

some-model.json: 
     ... 
     "properties": { 
      "subDocs": [ 
       "SubDocsModel" 
      ] 
     } 

sub-docs-model.json: 
     ... 
     "properties": { 
      "propertyA": "string", 
      "propertyB": "string" 
     } 

不是這樣做,但是,我想只是申報sub-doc模型內嵌在some-model.json中,因爲它只是在那裏記錄some-model的文檔的形狀。

這可能嗎?喜歡的東西:

some-model.json: 
... 
"properties":{ 
     "subDocs": [ 
      { 
       "propertyA": { 
        "type": "string" 
       }, 
       "propertyB": { 
        "type": "string" 
       } 
      } 
     ] 
} 

我試過以上,但我結束了我的MongoDB文檔與價值[object Object]string在現場...

的目的是(1)以記錄子文檔的形狀,以及(2)允許通過回送進行驗證而不添加定製邏輯。

回答

1

您可以將它定義爲object

一些-model.json:

"properties": { 
     "subDocs": ["object"] 
    } 

但如果你想驗證或有子文檔的結構,你需要創建一個迴環模型。

Loopback不進行任何驗證,...對於類型爲object的屬性。

+0

正確...但這需要我編寫額外的代碼來驗證像'propertyA'類型爲'string'的東西。有沒有一種方法來編碼類型? – jpoveda

+0

@jpoveda號碼如果您想要驗證和子文檔的數據結構的好處,您需要創建一個迴環模型 –

+0

感謝您的澄清。如果您更新了有關需要驗證模型的詳細信息,我會將答案標記爲已接受。我會更新我的問題以明確該要求。 – jpoveda