【问题标题】:MongoDB find query returns too many documentsMongoDB 查找查询返回太多文档
【发布时间】:2018-08-10 02:48:54
【问题描述】:

我在下面的查找查询会返回两个文档。我只希望它返回类对象等于所有条件而不是仅一个条件的文档。

Documents

{name: 'James', classes: { classId: '1', wednesday: true}}
{name: 'Greg', classes: { classId: '1', thursday: true}}

查询

UserProfiles.find({
  $and: [
    { 'classes.classId': 1 },
    { 'classes.wednesday': true },
  ],
});

【问题讨论】:

标签: mongodb meteor


【解决方案1】:

在这里找到答案。 Mongo Query On Multiple Fields Of Sub-Document

仅供参考:

你应该使用$elemMatch

UserProfiles.find({
  classes: {
    $elemMatch: {
      classId,
      [weekday]: true,
    },
  },
})

【讨论】:

    【解决方案2】:

    默认情况下,MongoDB 查找使用 '$and' 像这样重写您的查询...

    UserProfiles.find({"classes.classId":'1', "classes.wednesday":true});

    【讨论】:

      猜你喜欢
      • 2023-03-30
      • 2018-09-04
      • 1970-01-01
      • 1970-01-01
      • 2015-05-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多