Нажмите значение для массива в мангусте - PullRequest
0 голосов
/ 17 октября 2018

я пытаюсь выдвинуть в массив значение, но не работает, я искал и пробовал много разных решений ( Здесь ) или Здесь , но никто не работает всегдаreturn:

POST /users/addfollower 500 2.353 ms - 1410

Мой код:

console.log("Id da aggiungere ai follower: " + req.body.idf);
console.log("Id utente:" + req.user._id);
auth.findAndUpdate({_id: req.user._id}, {$push: {'amici': {"user": req.body.idf}}}).exec(function(err,res){
//
});

Моя схема:

const authschema = mongoose.Schema({
 _id: mongoose.Schema.Types.ObjectId,
 username: String,
 nome: String,
 cognome: String,
 email: String,
 password: String,
 cookie: String,
 pp: String,
 descrizione: String,
 autenticazione: Boolean,
 token: String,
 amici: [{
  user: String
 }]
});

Создание пользователя:

  const auth = new Auth({
    _id : new mongoose.Types.ObjectId(),
    username: req.body.username,
    nome: req.body.nome,
    cognome: req.body.cognome,
    email: req.body.email,
    password: hash,
    pp: "/uploads/user.png",
    descrizione: "Aggiungi qui la tua descrizione",
    autenticazione: false,
    token: token,
    amici: [{
      user: "start"
    }]
  });

Ответы [ 3 ]

0 голосов
/ 18 октября 2018

Попробуйте изменить схему на:

const amiciSchena = mongoose.Schema({
   name: String 
});  

const authschema = mongoose.Schema({
    _id: mongoose.Schema.Types.ObjectId,
    username: String,
    nome: String,
    cognome: String,
    email: String,
    password: String,
    cookie: String,
    pp: String,
    descrizione: String,
    autenticazione: Boolean,
    token: String,
    amici: [amiciSchena]
});
0 голосов
/ 19 октября 2018

Наконец-то я нашел проблему, я написал auth не в верхнем регистре ... потому что когда вызывается метод mongoose, мне нужно отнести его к схеме, поэтому моя схема Auth not auth, спасибо всем: D

Auth.findByIdAndUpdate(req.user._id, {$push: {"amici": req.body.idf }}, {safe: true,   upsert: true}, function(err,doc){
if(err){
  console.log(err);
}else{
  console.log("Working \^0^/");
}
 });
});
0 голосов
/ 17 октября 2018

Вы пытаетесь вставить объект в атрибут amici, но вы определили его как тип массива.

Попробуйте изменить

auth.findAndUpdate({_id: req.user._id}, {$push: {'amici': {"user": req.body.idf}}}).exec(function(err,res){
//
});

на

auth.findAndUpdate({_id: req.user._id}, {$push: {'amici': [{"user": req.body.idf}]}}).exec(function(err,res){
//
});

Я не могу гарантировать, что это единственная проблема, но это только начало.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...