У меня есть проблема, когда я создаю пользователя и хочу сохранить некоторые элементы, связанные с этим пользователем, одновременно.
Мне удалось получить его, где я могу создать элемент и ссылаться на идентификатор_пользователя, связанный с этим элементом, но я не могу понять, как вставить все элементы, которые есть у пользователя, в схему пользователя.
Я попытался перебрать req.body.taken и добавить в пользовательскую схему, но я только что получил ноль.
router.post('/data', async (req, res) => {
var user = new User({
name: req.body.name,
website: req.body.website,
})
user.save(function (err) {
if (err) {
return next(err);
}
})
req.body.taken.forEach((item) => {
var item = new Item({
x: item.x,
y: item.y,
xSize: item.xSize,
ySize: item.xSize,
user: user,
imageSource: item.imageSource,
user: user
}
)
item.save(function (err) {
if (err) {
return next(err);
}
})
})
const UserSchema = new Schema(
{
id: Number,
name: String,
website: String,
items: [{
type: mongoose.Schema.Types.ObjectId,
ref: 'Item'
}]
},
{ timestamps: true }
);
const ItemSchema = new Schema(
{
id: Number,
x: Number,
y: Number,
xSize: String,
ySize: String,
imageSource: String,
user: { type: mongoose.Schema.ObjectId, ref: 'User' }
},
{ timestamps: true }
);
User.find({})
.populate('items')
.exec(function(error, items) {
console.log(items)
})
Когда я вызываю User find, я хочу получить все элементы, связанные с этим пользователем (это будет массив, так как req.body.taken это массив элементов.