MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

Jak wykonać zapytanie za pomocą dot( . ) poprzez Mongoose w Node.js i jak dodać pustą tablicę

Istnieje wiele problemów, które prawdopodobnie napotkasz.

Po pierwsze, zespoły to właściwość tablicy, ale przypisujesz do niej obiekt. Musisz zrobić coś takiego:

var user = new users({
    userID: id, //give the id of the next user in Dbase
    userName: userName, 
    userEmail: 'userEmail',
    teams:[],
    socialMedias: [{socialMediaType: socialMediaID}]
});

Po drugie, jeśli socialMediaType jest przekazywane jako parametr funkcji, nie możesz go używać tak, jak robisz. Musisz zrobić coś takiego:

var socialMedias = {};
socialMedias[socialMediaType] = socialMediaID;
var user = new users({
    userID: id, //give the id of the next user in Dbase
    userName: userName, 
    userEmail: 'userEmail',
    teams:[],
    socialMedias: [socialMedias]
});

Po trzecie, twoje findOne nie będzie działać tak, jak jest. Z tego, co udało mi się tutaj zebrać, potrzebujesz czegoś takiego:

function searchUser(socialMediaID, socialMediaType){
    var user
    var query = {};
    query["socialMedias."+socialMediaType] = socialMediaID;

    users.findOne(query, function(err, userFound){

        if(err) return handleError(err);
        user = userFound; 
    });

    //what does  MongoDb return if it does not find the document?

    return user;
}

Ale po czwarte, nawet to nie zadziała, ponieważ synchronicznie zwracasz użytkownika z metody, która wykonuje operację asynchroniczną. Istnieje wiele sposobów rozwiązania tego problemu, ale możesz zacząć od przeczytania o obietnicach lub przekazania funkcji zwrotnej do searchUser.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB:upsert, gdy arrayFilters nie może znaleźć dopasowania

  2. Jak wykorzystać zrzucone dane przez mongodump?

  3. Jak zdobyć wszystkie poddokumenty z określoną wartością danego pola?

  4. Jak używać zapytania agregującego z MongoItemReader w wiosennej partii?

  5. mangusta strącająca usuwa puste elementy