我在mongodb中有一个嵌套文档,用于一台特定计算机上应用的所有修补程序。 我面临的问题是使用聚合查询来提取所有ID及其对应的修补程序类型。
我正在使用的查询是:-
db.collection.find({'Update_Type。 KB2868626 .InstalledOn':{$ gte:ISODate(“ 2013-11-14T00:00:00Z”)}},{_ id:1 ,'Update_Type。 KB2868626 .Hotfix。$':1});
查询已在mongo shell上运行,它给了我输出。但是,查询包含静态KB2868626 ID。
我有这样的结构:-
{ “ _id”:“ TEST_2019-02-19 11:59:23.022557”, “ DateandTime”:ISODate(“ 2019-02-19T11:59:23.022Z”), “主机名”:“测试”, “ Update_Type”:{ “ KB2868626”:[ { “ Hotfix”:“安全更新”, “ InstalledOn”:ISODate(“ 2013-11-14T00:00:00Z”) } ], “ KB2883200”:[ { “ Hotfix”:“更新”, “ InstalledOn”:ISODate(“ 2013-11-14T00:00:00Z”) } ], “ KB2887595”:[ { “ Hotfix”:“更新”, “ InstalledOn”:ISODate(“ 2013-11-14T00:00:00Z”) } ], “ KB2894179”:[ { “ Hotfix”:“更新”, “ InstalledOn”:ISODate(“ 2013-11-14T00:00:00Z”) } ], “ KB2900986”:[ { “ Hotfix”:“安全更新”, “ InstalledOn”:ISODate(“ 2013-11-14T00:00:00Z”) } ], “ KB2919355”:[ { “ Hotfix”:“更新”, “ InstalledOn”:ISODate(“ 2018-02-24T00:00:00Z”) } ], “ KB2919442”:[ { “ Hotfix”:“更新”, “ InstalledOn”:ISODate(“ 2018-02-24T00:00:00Z”) } ], “ KB2959977”:[ { “ Hotfix”:“更新”, “ InstalledOn”:ISODate(“ 2018-02-24T00:00:00Z”) } ], “ KB2992611”:[ { “ Hotfix”:“安全更新”, “ InstalledOn”:ISODate(“ 2018-02-24T00:00:00Z”) } ], “ KB2999226”:[ { “ Hotfix”:“更新”, “ InstalledOn”:ISODate(“ 2018-08-02T00:00:00Z”) } ], “ KB3149090”:[ { “ Hotfix”:“安全更新”, “ InstalledOn”:ISODate(“ 2018-02-24T00:00:00Z”) } ] } }
此外,我想不出一种构建管道结构以获得所需结果的方法。
任何帮助都会很棒。谢谢。