2016-10-13 10 views
1

Я пробовал несколько комбинаций и проверял документы MongoDB 3.2, но я все еще не получаю свою новую Date(), хранящуюся в моей БД. Все остальное внизу правильно сохраняется. Спасибо заранее за любые советы!

код из моего файла app.js:

db.collection('users').update({user: req.user.username}, { 
        $push: { 
         "recentPlays": { 
          "quiz": req.session.mostRecentQuiz, 
          "score": score 
         } 
        } 
       },{ 
        $set: { 
         "mostRecentQuiz.quizObj": req.session.mostRecentQuiz, 
         "mostRecentQuiz.time" : new Date() // StackOverflow: this is the part that is not getting stored in the DB. 
        } 
       }, function (err, result) { 
        if (err) throw err; 
        console.log(result); 
       }); 
+0

Попробуйте хранить метку времени вместо объекта: «Date.now()» вместо «новый Date()» – Nosyara

+0

@Nosyara спасибо за Ваш ответ. Я просто попробовал Date.now(), и он тоже не работает. «new Date()» работает в другом месте моего приложения. –

ответ

1

Ваш метод обновления вызывается неправильным образом, операторы обновления $set и $push должны быть в том же документе. Перепишите ваш метод, как:

db.collection('users').update(
    { "user": req.user.username }, 
    { 
     "$push": { 
      "recentPlays": { 
       "quiz": req.session.mostRecentQuiz, 
       "score": score 
      } 
     } 
     "$set": { 
      "mostRecentQuiz.quizObj": req.session.mostRecentQuiz, 
      "mostRecentQuiz.time" : new Date() 
     } 
    }, function (err, result) { 
     if (err) throw err; 
     console.log(result); 
    } 
); 
Смежные вопросы