MongoDB:如何查找具有包含给定数量的具有给定属性值的元素的数组字段的文档?

时间:2019-07-19 03:13:18

标签: mongodb

我正在尝试在Mongodb中进行复杂的查询,但是不知道如何应用这些复杂的条件。

我要查询至少两个事件类型为“ sale”的交易,然后可以获得交易列表作为返回值。

但是,如果我用db.trans.find({ "events.type": "sale" })查询,即使event.type为sale的任何给定数量(1〜inf),我也将获得交易。但是我真正想要的是至少有两个事件的返回值包含“ sale”。

总共有2个集合,一个是事务,另一个是事件,每个事务对应一个或多个事件。

示例文档(交易)如下所示:

{
    trans_id: "1234567",
    events: [ event, event... ] // for each event contains event_id and type
}

事件对象如下:

{
    event_id: "123456",
    type: "sale" // "checkout", "cancel", etc
}

预期:交易清单中至少包含两个事件,属性为“ sale”。

编辑:感谢@ It'sNotMe,两个集合之间的关系被规范化,像SQL一样模拟该关系。我已经在上面的文档中添加了注释,希望它更易于阅读。

0 个答案:

没有答案