开发者社区> 问答> 正文

如何在mongodb中的对象数组中搜索

假设mongodb文档(表)“用户”为

{ _id: 1, name: { first: 'John', last: 'Backus' }, birth: new Date('Dec 03, 1924'), death: new Date('Mar 17, 2007'), contribs: [ 'Fortran', 'ALGOL', 'Backus-Naur Form', 'FP' ], awards: [ { award: 'National Medal', year: 1975, by: 'NSF' }, { award: 'Turing Award', year: 1977, by: 'ACM' } ] } and other object(person)s 我想找到获得“国家奖”的人,并且必须在1975年获得该奖。可能会有其他人在不同的年份获得此奖。

如何使用奖励类型和年份查找此人。这样我就可以找到确切的人。

展开
收起
保持可爱mmm 2020-01-16 17:01:12 296 0
1 条回答
写回答
取消 提交回答
  • 正确的方法是:

    db.users.find({awards: {$elemMatch: {award:'National Medal', year:1975}}}) $elemMatch 允许您在同一数组元素中匹配多个组件。 问题来源于stack overflow

    2020-01-16 17:01:32
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
开源数据库 MongoDB 专场 MongoDB疑难杂症分析及优化 立即下载
MongoDB多数据中心的方案选型之路 立即下载
饿了么高级架构师陈东明:MongoDB是如何逐步提高可靠性的 立即下载