如何找到符合某些条件的猫鼬子文档
How to find mongoose subdocuments matching some criterion
我的简化模式如下所示:
var personSchema = new Schema({
firstName: String,
lastName: String
});
var teamSchema = new Schema({
people: [personSchema]
});
module.exports = mongoose.model('Team', teamSchema);
我想找到所有叫"艾伦"的人。 我看了这个非常相似的问题,但它找到了团队,而不是人。 我想这里也一样。 是否有查询可以返回人员,即使我没有人员集合?
我想我可以使用引用的技术来寻找团队,然后拉出他们的人。 像这样的东西,我猜:
teams
.find({})
.populate({
path: 'people',
match: { firstName: { $eq: "Alan" }}
})
.exec().then(function(teams) {
var people = [];
// walk through the found teams, looking through all the people
// whenever one is found named Alan, add it to the people array
});
但还有更直接的方法,对吧?
根据您的评论,也许您可以尝试一下
teamSchema.statics.findPeople = function(name, cb) {
return this.find({'people.firstName': name}, {'people.$': 1}, cb);
}
var Team = mongoose.model('Team', teamSchema);
Team.findPeople('Alan', function(err, data) {
if (err)
console.log(err);
else
console.log(data);
})
相关文章:
- 使用promise和mongoose对文档进行排序
- document.open/document.write没有正确地清除chrome中的文档——这是chrome的错误吗
- Ajax请求文档就绪会导致jquery加载缓慢
- MongoDB (php) - 以数组而不是多个属性的形式返回文档属性
- 谷歌文档表面引擎
- 来自文档或下一个静态父级的事件委派
- 如何将childNodes用于XML文档
- 文档就绪提供了错误的选择器高度
- 将当前用户的 ID 推送到 meteorjs 中集合/文档的内部数组
- 文档中的多个条件语句
- 从 JSON 对象数组中获取与条件匹配的文档
- 使用 OR 条件删除带有猫鼬的 MongoDB 中的文档
- 如何找到符合某些条件的猫鼬子文档
- 获取集合中不符合条件的所有文档
- 我可以在mongoDB中找到基于填充条件的文档吗
- xhtml文档没有读取条件样式表
- 如何在Mongodb中返回符合给定条件的子文档数组
- 是否有任何关于如何填充修订说明以及在什么条件下填充的文档
- 我可以在我的html文档底部放置条件注释吗?(在身体里)还是应该在头脑里
- 如何从文档中删除子文档,其中条件x = true或条件y = true