2016-10-25 18 views
7

Próbuję uzyskać identyfikator użytkownika i obiekt tablicy, który zawiera określoną lokalizację w obrębie lokalizacji.Mongoose znajdź i utwórz wielowymiarowe tablice

Co chcę osiągnąć jest następujące:

Zapytanie zwróci wynik danego miejsca Array.

Jeśli identyfikatora użytkownika nie ma w ogóle, należy utworzyć go, a następnie powrócić tablicę lokalizacji dopasowania.

Jeśli numer identyfikacyjny lokalizacji nie ma. utwórz nowy, a następnie zwróć tablicę zgodnej lokalizacji.

Jak mogę to zrobić?

Aktualny zapytania:

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


     } 

    }); 

model:

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

Niestety, nie rozumiem, co próbujesz osiągnąć. Jeśli możesz dodać przykłady zapytań i oczekiwane wyniki, byłoby to pomocne – TomG

Odpowiedz

1

Przypuszczam, że easyCrime jest model, bo nie ma czegoś takiego jak findOne zapytania w dokumencie. Jeśli jest to model, nazwij go EasyCrime.


Bardzo trudno mi było zinterpretować twoje pytanie. Bazując na tym, co rozumiem, to jest twoje rozwiązanie.