基于对象属性查询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) {...});