如果字段数组和参数数组相交,则过滤 MongoDb 集合

Filter MongoDb collection if field array and argument array intersect

我正在创建一个 Meteor 学习项目。其中有一个集合,它的文档有一个名为 keywords 的 属性,它是一个字符串数组。我有第二个字符串数组。我想以这种方式过滤集合,它只返回那些 keywords 数组与第二个数组相交的文档,即两个数组都有一个或几个相同的元素。可能吗?

是的,查询将是:

var searchKeywords = ['a','b','c','d']

MyCollection = new Mongo.Collection('mycollection');

MyCollection.insert({
  keywords: ['x','y','a','b']
});
// returns some ID

MyCollection.findOne({
  keywords: { $in: searchKeywords } 
})._id
// returns the same ID