2017-02-21 3 views
0

Я получаю данные, как это:Как получить доступ к данным мангуста: Nodejs

Это код:

User.find({ Username: user }, function(err, found_user) { 

        console.log('user data'+ found_user); 

        if(found_user.length > 0){ 

         console.log('inside found user'); 
         var recordings = found_user.recordings; 
         console.log(recordings) 
         for (var singleRecords in recordings){ 
          console.log("Single record :"+singleRecords); 
          if(!singleRecords.isPlayed){ 
           console.log(singleRecords.playingUrl); 
           twiml.play(singleRecords.playingUrl); 
           found_user.recordings[singleRecords].isPlayed = true; 
           found_user.save(function (err) { 
            if(err) 
             throw err 
           }); 


          } 
         } 
        } 

И это значение найденного пользователя:

user data { Username: 'B', 
    __v: 2, 
    _id: 58ac15e4b4e1232f6f118ba3, 
    recordings: 
     [ { isPlayed: false, 
      playingUrl: 'http://localhost:8000/public/toplay/playing_file_1487672817599.mp3' }, 
     { isPlayed: false, 
       playingUrl: 'http://localhost:8000/public/toplay/playing_file_1487672827411.mp3' } ] 
     } 
inside found user 

в переменная found_user. Но это не дает мне никаких данных внутри него. Подобно found_user.Username дает неопределенное значение. Я хочу сохранить этот массив записей внутри переменной. Есть идеи, как это сделать?

+1

пожалуйста, покажите нам код, который вы пытаетесь? –

+1

первый log found_user с помощью 'console.log (found_user);' и покажите нам вывод – nivas

+0

@nivas, пожалуйста, см. Обновленные вопросы –

ответ

1

find() возвращает массив документов, которые соответствуют критериям, установленным в функции обратного вызова, следовательно, линиях

var recordings = found_user.recordings; 

не будет работать, как это ожидает документ не массив.

Вы можете использовать findOne() метод, который возвращает документ как:

User.findOne({ Username: user }.exec(function(err, found_user) {  
    console.log('user data'+ found_user); 
    if (found_user) { 
     console.log('inside found user'); 
     var recordings = found_user.recordings; 
     console.log(recordings); 
    } 
}); 
Смежные вопросы