Я пытаюсь обновить схему мангуста. В основном у меня есть два api '/ follow /: user_id' и '/ unfollow /: user_id'. То, что я пытаюсь достичь, - каждый раз, когда пользователь A следует за пользователем B, поле пользователя B-последователей в мангусте будет увеличиваться как единое целое.Обновление полей схемы mongoose одновременно
На данный момент мне удалось получить только следующие поля, увеличивающиеся на единицу, но не на поля последователей.
schema.js
var UserSchema = new Schema({
name: String,
username: { type: String, required: true, index: { unique: true }},
password: { type: String, required: true, select: false },
followers: [{ type: Schema.Types.ObjectId, ref: 'User'}],
following: [{ type: Schema.Types.ObjectId, ref: 'User'}],
followersCount: Number,
followingCount: Number
});
Обновленная версия: Я попробовал мое решение, но всякий раз, когда я его, это только выборка данных (я попробовал API на Почтальон хром приложение).
api.js
// follow a user
apiRouter.post('/follow/:user_id', function(req, res) {
// find a current user that has logged in
User.update(
{
_id: req.decoded.id,
following: { $ne: req.params.user_id }
},
{
$push: { following: req.params.user_id},
$inc: { followingCount: 1}
},
function(err) {
if (err) {
res.send(err);
return;
}
User.update(
{
_id: req.params.user_id,
followers: { $ne: req.decoded.id }
},
{
$push: { followers: req.decoded.id },
$inc: { followersCount: 1}
}
), function(err) {
if(err) return res.send(err);
res.json({ message: "Successfully Followed!" });
}
});
});
Эти коды только успевай увеличиваем следующие пользовательские поля, и без дублирования. Как обновить зарегистрированный пользовательский после полей и так же, как и других подписчиков пользователя, в то же время?
Обновленная версия: он продолжает извлекать данные.
Благодарим за помощь, не работает. Он обновляет только следующие и последующие поля Count, но не последователи и последователи. – sinusGob
проверить обновленную версию, я приложил картинку – sinusGob
Что вы получили, когда вы попробовали 'console.log (user)'? – Khay