2017-01-16 2 views
0

Мой вопрос здесь, почему нет строки watchlistSchema.update(function (error) { { $push: { watchlist: req.body.stockAdded } }});, обновляющей существующую схему атрибута списка наблюдения? Когда я использую это обновление, ничего не происходит, и он возвращает null. Когда я меняю его на список наблюденияСША. Он работает, но создает и совсем другой документ. Я хотел бы в основном проверить для пользователя и список наблюдения, и если они оба существуют вместе, я хотел бы нажать строку в массив списка. Я очень новичок в мангусте, поэтому он немного запутан.Обновление Mongoose не работает

var Schema = mongoose.Schema;  

var watchlistSchema = new Schema({ 
    watchlist: [{ }], 
    user: String 
}); 

var Watchlist = mongoose.model('Watchlist', watchlistSchema, "watchlist");  

app.post('/watchlistPost', function (req, res) { 

var watchlistSchema = Watchlist({ 
    'watchlist': req.body.stockAdded, 
    'user': req.user.username 
}); 

Watchlist.findOne({ 
    $and: [{ 
     'watchlist': req.body.stockAdded, 
    }, { 
     'user': req.user.username 
    }] 
}, function (err, list) { 
    if (list) { 
     res.status(200).send({ "success": "Updated Successfully", "status": 200 }); 
    } else { 
     if (req.user) { 
      watchlistSchema.update(function (error) { 
       { $push: { watchlist: req.body.stockAdded } } 
      }); 
     } else { 

     } 
    } 
}) 
}); 

ответ

0

Ваш оператор update должен содержать запрос «найти». Таким образом, он может привязать условие обновления ко всем документам, соответствующим указанному запросу.

изменить код, чтобы что-то вроде:

var Schema = mongoose.Schema;  

var watchlistSchema = new Schema({ 
    watchlist: [{ }], 
    user: String 
}); 

var Watchlist = mongoose.model('Watchlist', watchlistSchema, "watchlist");  

app.post('/watchlistPost', function (req, res) { 

var watchlistSchema = Watchlist({ 
    'watchlist': req.body.stockAdded, 
    'user': req.user.username 
}); 

var query = { 
    $and: [{ 
     'watchlist': req.body.stockAdded, 
    }, { 
     'user': req.user.username 
    }]}; 

Watchlist.update(query, { $push: { watchlist: req.body.stockAdded } }, ==your callback to check stuff==); 
Смежные вопросы