ここに私の問題があります
私は3つのスキーマを持っています
var UserSchema = new Schema({
username:String,
email:String,
hashed_password:String,
salt:String,
shop_id:{type:Schema.Types.ObjectId,ref:'Shop'},
})
var ShopSchema = new Schema({
owner_id:{type:Schema.Types.ObjectId,ref:'User'},
owner_real_id:String,
owner_real_name:String,
owner_real_location:String,
shop_name:String,
sell_product_ids:[Schema.Types.ObjectId],
})
var ProductSchema = new Schema({
})
アプリを使用するには usersschema にサインアップする必要がありますが、ユーザーが何かを販売したい場合を除き、shopschema にサインアップする必要はありません。ただし、ユーザーがショップスキーマにサインアップするときは、ユーザースキーマをショップの _id で更新する必要があります。
だからここに私がやったことです
- ショップ コレクションでドキュメントを作成する
- ショップ_idを見つける
- ユーザー コレクションを更新する
ご覧のとおり、データベースに3回クエリを実行しているので、次のように時間を節約するために1回のクエリでこれを実行できるかどうか疑問に思っていました
Shop.create(regist_data,function(){
//update the user collection here
})
なぜこれが必要なのか疑問に思っている場合は、'passport' を使用してユーザーにログインし、req.user のショップの _id で ProductShcema にアクセスしたいからです。ショップの _id を見つけて、ショップの _id に属する商品を取得します。
いずれにせよ、より良い解決策があれば、教えてください.thanx !!!