需要高级MongoDB查询

时间:2017-12-06 07:56:04

标签: mongodb mongodb-query

我是MongoDB查询的新手,我了解find的基础知识。然而,我还没有掌握$ lookup,$ project,$ aggregate,$ match等,这几乎是做任何花哨的事情所必需的。我需要一个奇特的查询请参阅下面的棘手问题:

类别:

schema
{ _id: 1, name: “Schema1”, }
{ _id: 2, name: “Schema2”, }

device: 
{ _id: 1, schema: 1, organisation: 2 }
{ _id: 2, schema: 1, organisation: 2 }
{ _id: 3, schema: 2, organisation: 2 }

field:
{ _id: 1, organisation: 2, name: “cost”, displayType: “number” }
{ _id: 2, organisation: 2, name: “retail”, displayType: “number” }
{ _id: 3, organisation: 2, name: “project”, displayType: “string” }

fieldvalue
{ _id: 1, device: 1, field: 1, organisation: 2, value: 2000 }
{ _id: 2, device: 1, field: 2, organisation: 2, value: 3000 }
{ _id: 3, device: 2, field: 1, organisation: 2, value: 1000 }
{ _id: 4, device: 2, field: 2, organisation: 2, value: 1000 }
{ _id: 5, device: 3, field: 1, organisation: 2, value: 500 }
{ _id: 6, device: 1, field: 3, organisation: 2, value: “Project1” }
{ _id: 7, device: 2, field: 3, organisation: 2, value: “Project2” }
{ _id: 8, device: 3, field: 3, organisation: 2, value: “Project2” }

我想查询FieldValue。 我想$ sum所有“值”,其中字段为1 但只有那些“与”字段3“共享”具有值“Project2”的设备。

作为我的参数:

我想要求和的字段的ID,例如1(费用)

“项目”字段的ID,例如3(项目)

“项目”字段(ID 3)的值,为了符合求和条件,也必须满足该值。

所以我的查询应该只$ $总和id的“值”:3和5

我如何在Mongo Query中执行此操作?

是否可以添加更多约束?例如。 “设备”的“架构”必须为3,然后应该得到一个$ sum的总和:5

0 个答案:

没有答案