Как получить данные массива сразу после отправки данных в массив в mon goose? - PullRequest
0 голосов
/ 06 августа 2020

Я хочу, чтобы после того, как я sh отправлю данные в массив в mongodb, я захочу получить только все эти отправленные данные, но не все данные пользователя; потому что я хочу, чтобы _id этого соответствующего массива был создан, поскольку я должен выполнять задачи.

Но здесь я получаю все данные объекта User, созданного вместе с массивом. Но когда я пытаюсь использовать это как формат: userData.Addtasks._id, он не работает.

Итак, есть ли какой-либо конкретный формат c или способ получить определенные c точные данные с использованием nodejs и mon goose?

  User.findOneAndUpdate({email:req.user.email}, {$push: {Addtasks: tasks}},
  function (error, userData) {
        if (error) {
            console.log("error");
        }  else {
          var editable = new Editable({userId: userData.Addtasks._id});
          editable.save(function (err) {
            if (err) {
              res.render('error', {errorMessages: err});
            }
else{
do something
}
});

Схема:

var mongoose = require('mongoose');
var crypto = require('crypto');

var userSchema = new mongoose.Schema({
  email: {
    type: String,
    unique: true,
    required: true
  },
  name: {
    type: String,
    required: true
  },
  hash: String,
  salt: String,

  Addtasks : [{
    topic: String,
    words: Number,
    keywords: String,
    website: String,
    otherdetails: String,
    exampleRadios: String,
    Date: String,
  }]

});

userSchema.methods.setPassword = function(password) {
  this.salt = crypto.randomBytes(16).toString('hex');
  this.hash = crypto.pbkdf2Sync(password, this.salt, 1000, 64, 'sha1').toString('hex');
};

userSchema.methods.validPassword = function(password) {
  var hash = crypto.pbkdf2Sync(password, this.salt, 1000, 64, 'sha1').toString('hex');
  return this.hash === hash;
};

module.exports = mongoose.model('User', userSchema);

Как я могу этого добиться?

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