这是我的问题
我有三个架构
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({
})
必须注册用户模式才能使用该应用程序,但除非用户想卖一些东西,否则无需注册商店模式。但是,当用户确实注册了 shopschema 时,我需要使用商店的 _id 更新 usersschema,
所以这就是我所做的
- 在商店集合中创建文档
- 找到商店_id
- 更新用户集合
如您所见,我查询了数据库三次,所以我想知道这是否可以在一个查询中完成以节省时间
Shop.create(regist_data,function(){
//update the user collection here
})
以防万一你想知道我为什么需要这个,因为我使用“护照”登录用户,并且我想通过 req.user 中商店的 _id 访问 ProductShcema,否则每次我想访问我想要的 ProductShcema找到店铺的_id,然后得到属于店铺_id的产品。
无论如何,如果你有更好的解决方案,请告诉我。thanx !!!