MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

Как да направите заявка с помощта на dot( . ) през Mongoose в Node.js и как да добавите празен масив

Тук има редица проблеми, с които вероятно ще се сблъскате.

Първо, teams е свойство на масив, но вие присвоявате обект към него. Трябва да направите нещо подобно:

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

Второ, ако socialMediaType е предаден като функционален параметър, не можете да го използвате, както правите. Трябва да направите нещо подобно:

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]
});

Трето, вашият findOne няма да работи както е. От това, което мога да разбера за вашето намерение тук, имате нужда от нещо подобно:

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;
}

Но четвърто, дори това няма да работи, защото синхронно връщате потребител от метод, който изпълнява асинхронна операция. Има различни начини за решаване на това, но можете да започнете, като прочетете за обещанията или подадете функция за обратно извикване в searchUser.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Заявките на Mongoose за условие за дата нямат резултати, MongoDB Shell работи

  2. sql заявка към mongodb?

  3. Meteor с помощта на Azure MongoDB

  4. Производителност на MongoDB:Изпълнение на операции за намаляване на картата на MongoDB на вторични

  5. Първичната реплика на MongoDb става вторична, ако вторичната се повреди