2015-01-07 101 views
0

有沒有辦法爲這種類型的數據創建模式:貓鼬模式的嵌套對象

"documents" : { 

      "54983c4c78c824eb0ac7a0d8" : { 
       "completed" : true 
      }, 
      "54983c4c78c824eb0ac7a0dd" : { 
       "completed" : true 
      }, 
      "54983c4c78c824eb0ac7a0d7" : { 
       "completed" : true 
      }, 
      "54983c4c78c824eb0ac7a0de" : { 
       "completed" : true, 
       "comments" : [ 
        { 
         "author" : "54973a31cfb18d60089e9403", 
         "text" : "hello" 
        } 
       ] 
      } 
     } 
+1

是的。但不要這樣做。切勿將「數據」用作「鑰匙」。改用「數組」。這更合乎邏輯。 –

回答

1

如何:

"documents":{[ 
      {"id":54983c4c78c824eb0ac7a0d8, 
      "status":"completed"}, 
      {"id":54983c4c78c824eb0ac7a0dd, 
      "status":"completed"}, 
      {"id":54983c4c78c824eb0ac7a0d7, 
      "status":"completed"}, 
      {"id":54983c4c78c824eb0ac7a0de, 
      "status":"completed", 
      "comments":[ 
         {"author_id":54973a31cfb18d60089e9403, 
          "text":"hello"}] 
      }]} 

然後,你可以查詢任何你想要的:

db.documents.find({"id":54983c4c78c824eb0ac7a0d8}) 

或按狀態:

db.documents.find({"status":"completed"})