找到具有相同子文档的所有文档mongoose

时间:2017-03-09 05:10:05

标签: node.js mongodb mongoose

我有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个标签的帖子而不需要多次查询。可能吗?

1 个答案:

答案 0 :(得分:1)

执行查找时,可以使用$in选项查找数组中的值。例如:

posts.find({tags:{$in:{["tag1","tag2","tag3"]}}, function(err,data) {
... //Your code here
}

这将包含包含三个标记之一的所有帖子。重要的是你必须在$in选项中传递一个数组。这应该有用。