mongooseを使用してネストされた配列を作成するのに苦労しています。mongooseでネスト配列を作成するのに役立つ必要があります
私は次のようになりますレシピモデルがあります:
let recipeSchema = Schema({
name: {
type: String,
required: true
},
description: {
type: String,
},
steps: {
type: String,
required: true,
},
ingredients: [],
reviewsArray: [{ type: Schema.Types.ObjectId, ref: 'Review' }],
category: {
type: String,
required: true,
},
postedBy: [{type: Schema.Types.ObjectId, ref: 'User'}],
numberOfRatings: {
type: Number,
default: 0
},
totalAddedRatings: {
type: Number,
default: 0
},
reviewAverage: {
type: Number,
default: undefined
},
});
をそして、私はまた、Userモデルがあります:ユーザーが新しいレシピを作るたび
let User = Schema({
name: {
type: String
},
// The passport plugin already inputs username and password into our Schema
username: {
type: String,
unique: true,
required: true
},
password: {
type: String,
required: true,
minlength: 6
},
userId: {
type: String,
default: "Empty"
},
tokens: [{
access: {
type: String,
required: true
},
token: {
type: String,
required: true
}
}],
profilePic: {
type: String
},
email: {
type: String,
unique: true,
required: true,
validate: {
validator: (value) => {
return validator.isEmail(value);
},
message: `{value} is not a valid email address.`
}
},
admin: {
type: Boolean,
defualt: false
},
usersRecipes: [{ type: Schema.Types.ObjectId, ref: 'Recipe' }],
usersReviews: [{ type: Schema.Types.ObjectId, ref: 'Review' }],
usersFavouriteRecipes: {
type: Array
},
usersLikedRecipes: {
type: Array
},
chefKarma: {
type: Number,
defualt: 0
}
});
を、私はそのレシピにしたいですまた、usersRecipe配列に格納することもできます。私がしようとしているコードは次のとおりです。
router.post('/addrecipe', (req, res, next) => {
Recipe.create({
name: req.body.name,
description: req.body.description,
steps: req.body.steps,
ingredients: req.body.ingredients,
category: req.body.category,
postedBy: req.body.postedBy
});
User.find({_id: req.body.postedBy})
.populate({
path: 'usersRecipes',
model: 'Recipe'
})
.exec(function(err, docs) {});
});
私のコードは意図したとおりに動作しません。誰か私が間違っていることを私に説明することはできますか?これは、あなたがやっていることである
私は人口が更新と混乱していると思います。ユーザー文書にレシピ参照を挿入する場合は、ユーザー文書を更新する必要があります。 'populate'は参照を実際の文書でしか見つけず、挿入しません。 –
私はupdateを使うと、usersRecipesを取り除かなければなりません:[{type:Schema.Types.ObjectId、ref: 'Recipe'}]? – MountainSlayer