匹配猫鼬填充中的特定值
Match specific value in mongoose populate
以下是用户集合的架构:
const Mongoose = require('mongoose')
const Schema = Mongoose.Schema
const userSchema = new Schema({
name: {
type: String,
required: true
},
email: {
type: String,
required: true
},
password: {
type: String
},
supporterOf: [{
type: Schema.Types.ObjectId,
ref: 'individual',
required: false
}],
})
module.exports = Mongoose.model('user', userSchema);
我想填充 'supporterOf' 这是个人的集合(参考:个人)。
'supporterOf' 包含一个 ObjectId 数组。
我遇到了将特定 objectId 与该 ObjectId 数组匹配的问题。
谁能建议我如何将特定的 ObjectId 与填充函数中的 ObjectId 数组匹配?
您在 populate
中添加条件
如果你想根据年龄填充粉丝数组,return,最多任意 5 个
.populate('fans', null, { age: { $gte: 21 }}, { limit: 5 })
您在 supporterOf 中有一个 'individual' 的引用,并且您只想填充个人数组中的相关对象?
如果这是正确的情况,则执行以下操作:
YourUserModel.findById(userId, function (err, user) {
console.log(user)
}).populate({
path: 'supporterOf',
match: {
yourObjectOfIndividualDocument: yourMatchingIdOfIndividual
}
})
.exec()
将 yourObjectOfIndividualDocument: yourMatchingIdOfIndividual
替换为 name: 'abcd'
。
这里name
是Individual document的字段,不是User document的字段。
以下是用户集合的架构:
const Mongoose = require('mongoose')
const Schema = Mongoose.Schema
const userSchema = new Schema({
name: {
type: String,
required: true
},
email: {
type: String,
required: true
},
password: {
type: String
},
supporterOf: [{
type: Schema.Types.ObjectId,
ref: 'individual',
required: false
}],
})
module.exports = Mongoose.model('user', userSchema);
我想填充 'supporterOf' 这是个人的集合(参考:个人)。 'supporterOf' 包含一个 ObjectId 数组。 我遇到了将特定 objectId 与该 ObjectId 数组匹配的问题。 谁能建议我如何将特定的 ObjectId 与填充函数中的 ObjectId 数组匹配?
您在 populate
中添加条件如果你想根据年龄填充粉丝数组,return,最多任意 5 个
.populate('fans', null, { age: { $gte: 21 }}, { limit: 5 })
您在 supporterOf 中有一个 'individual' 的引用,并且您只想填充个人数组中的相关对象? 如果这是正确的情况,则执行以下操作:
YourUserModel.findById(userId, function (err, user) {
console.log(user)
}).populate({
path: 'supporterOf',
match: {
yourObjectOfIndividualDocument: yourMatchingIdOfIndividual
}
})
.exec()
将 yourObjectOfIndividualDocument: yourMatchingIdOfIndividual
替换为 name: 'abcd'
。
这里name
是Individual document的字段,不是User document的字段。