猫鼬按字段填充而不是_id
Mongoose populate by field not _id
我有这两个模式
const User = new mongoose.Schema({
username: {
type: String,
unique: true,
}
})
const Product = new mongoose.Schema({
user: {
type: mongoose.Schema.Types.ObjectId,
ref: "User"
}
//...Other product information
})
当我查询产品时,我可以像这样填充产品用户
await database.Product.findOne({}).populate("user")
这将通过他的 id
填充用户,但我想通过他的用户名填充用户,因为它永远不会重复,而且它是独一无二的。我有一种方法可以通过 _id
以外的其他字段来引用模型
这样做:
await database.Product.findOne({}).populate('user',{path: 'username'})
我有这两个模式
const User = new mongoose.Schema({
username: {
type: String,
unique: true,
}
})
const Product = new mongoose.Schema({
user: {
type: mongoose.Schema.Types.ObjectId,
ref: "User"
}
//...Other product information
})
当我查询产品时,我可以像这样填充产品用户
await database.Product.findOne({}).populate("user")
这将通过他的 id
填充用户,但我想通过他的用户名填充用户,因为它永远不会重复,而且它是独一无二的。我有一种方法可以通过 _id
这样做:
await database.Product.findOne({}).populate('user',{path: 'username'})