Я хочу, чтобы после того, как я 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);
Как я могу этого добиться?