代码之家  ›  专栏  ›  技术社区  ›  bp123

MongoDB find查询返回的文档太多

  •  0
  • bp123  · 技术社区  · 8 年前

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

    Documents

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

    查询

    UserProfiles.find({
      $and: [
        { 'classes.classId': 1 },
        { 'classes.wednesday': true },
      ],
    });
    
    2 回复  |  直到 8 年前
        1
  •  0
  •   bp123    8 年前

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

    仅供参考:

    你应该用 $elemMatch .

    UserProfiles.find({
      classes: {
        $elemMatch: {
          classId,
          [weekday]: true,
        },
      },
    })
    
        2
  •  -1
  •   Abhishek Maurya    7 年前

    MongoDB find默认使用“$”和“重写查询,如下所示…”。。。

    UserProfiles.find({“classes.classId”:'1',“类。星期三:真的};