2016-10-25 62 views
7

我想要獲取用戶標識和包含位置內特定位置的數組對象。貓鼬找到並創建多維數組

我想做到的是以下幾點:

的查詢將返回陣列位置的結果。

如果不存在userid,則創建它,然後返回匹配位置的數組。

如果位置ID號碼不存在。創建一個新的,然後返回匹配位置的數組。

我該如何做到這一點?

目前查詢:

easyCrime.findOne({ 
     userid: userid, 
     "locations.location": location 
    }, {"locations.$.location": 1}).then(function (err, stats) { 


     } 

    }); 

型號:

userid: { 
     type: String, 
     default: '57c1c0f3b6b20c011242bf22' 
    }, 
    locations: [ 
     { 
      userid: { 
       type: String, 
       default: '57c1c0f3b6b20c011242bf22' 
      }, 
      location: { 
       type: Number, 
       default: 1 
      }, 
      easycrime: [ 
       { 
        optioname : { 
         type: String, 
         default: 'unknown' 
        }, 
        chance: { 
         type: Number, 
         default: 500 
        } 
       } 
      ], 
      heavycrime: [ 
       { 
        optioname : { 
         type: String, 
         default: 'unknown' 
        }, 
        chance: { 
         type: Number, 
         default: 500 
        } 
       } 
      ], 


     } 
    ], 

    timesteal: { 
     type:Number, 
     default: 0 
    } 
+0

對不起,我不明白你在做什麼。如果您可以添加查詢和預期結果的示例,那將會很有幫助 – TomG

回答

1

我假定easyCrime是Model,導致出現在文檔findOne查詢沒有這樣的事情。如果它是模型,請將其命名爲EasyCrime。



我真的很難解釋你的問題。根據我的理解,這是你的解決方案