2015-01-07 100 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"})