我有postSchema,它引用了tagsSchema。
var tagsSchem = new Schema({
name: {
type: String,
required: true
}
}, {
timestamps: true
});
// create a schema
var postsSchema = new Schema({
title: {
type: String,
required: true,
unique: true
},
mainImage: {
type: String
},
category: {
type: String,
required: true
},
body: {
type: String,
required: true
},
postedBy: {
type: mongoose.Schema.Types.ObjectId,
ref: 'User'
},
tags: [tagsSchem]
}, {
timestamps: true
});
一个帖子可以包含任何号码。标签。因此,如果帖子有3个标签,那么我想获得所有带有这3个标签的帖子而不需要多次查询。可能吗?
答案 0 :(得分:1)
执行查找时,可以使用$in
选项查找数组中的值。例如:
posts.find({tags:{$in:{["tag1","tag2","tag3"]}}, function(err,data) {
... //Your code here
}
这将包含包含三个标记之一的所有帖子。重要的是你必须在$in
选项中传递一个数组。这应该有用。