基于对象属性查询Mongoose文档

我有以下的mongoose模式:

var UserSchema = new Schema({ name: String, age: Number, ... tags: [{ text: String, ... }] }); 

和下面的数组:

 var tagTexts = ['tall', 'small', 'green', 'blue']; 

我想检索所有包含至less一个标签的用户文档,其中包含tagTexts中的文本属性。

例如,如果我有以下用户和tagTexts数组

 [{ name: 'Bob', age: 17, ... tags: [{ text: 'small', ... }] }, { name: 'Bill', age: 29, ... tags: [{ text: 'dandelion', ... }, { text: 'oak', ... }] }] var tagTexts = ['tall', 'small', 'green', 'blue']; 

那么鲍勃将被检索,但不是比尔。

您可以使用$in来匹配值数组,并使用点符号来定位tags数组中每个元素的text字段。 任何匹配都会导致文档被包含在结果中。

 var tagTexts = ['tall', 'small', 'green', 'blue']; User.find({'tags.text': {$in: tagTexts}}, function(err, users) {...});