我在MongoDB中搜索了两个集合。我找到了人口。但它不符合我的情况。我在节点js中使用mongoose。我的架构如下所示。
const CoordinateSchema = new mongoose.Schema({
activationId: {
type: mongoose.Schema.ObjectId,
ref: 'Activation'
},
mac: {
type: mongoose.SchemaTypes.String,
required: true,
set: toLower
},
t: { type: Date },
userId: {
type: mongoose.Schema.ObjectId,
ref: 'User'
}
});
const UserSchema = new mongoose.Schema({
email: {
type: mongoose.SchemaTypes.String,
required: true,
//unique: true,
set: toLower
},
mac: {
type: mongoose.SchemaTypes.String,
required: true,
unique: true,
set: toLower,
index: true
},
dob: {
type: mongoose.SchemaTypes.Date,
},
gender: { type: mongoose.SchemaTypes.String, set: toLower },
activations: [{
activationId: {
type: mongoose.Schema.ObjectId,
ref: 'Activation'
},
userType: { type: mongoose.SchemaTypes.String, set: toLower },
_id: false
}]
}
我在坐标集合中有单个激活的数千条记录。
我的查询查询需要从与用户集合中的userType匹配的坐标集合中过滤不同的mac。
如果我使用populate方法&然后应用过滤器,它不会限制获取记录数,因为它查询花费了很多时间,因为它将返回数千条记录。
我想只获取与用户集合中的userType匹配的坐标。
到目前为止,我还没有找到任何有效的方法来加入两个集合&适用于条件的地方。
我想知道在mongodb& amp;中加入两个集合的有效方法适用于两个集合的条件。