Document in Mongo ->
{
emp_id : 11
proj_info :
[{
proj_id : 91
proj_name : 'abc'
proj_team :
[{
name : 'Ravi'
member_emp_id : '55'
designation : 'manager'
}
{
name : 'Ram'
member_emp_id : '66'
designation : 'consultant'
}]
}
{
proj_id : 92
proj_name : 'pqr'
proj_team :
[{
name : 'Sham'
member_emp_id : '15'
designation : 'manager'
}]
}
{
proj_id : 93
proj_name : 'xyz'
proj_team :
[{
name : 'Karan'
member_emp_id : '25'
designation : 'manager'
}]
}
}]
}
这是我用Python编写的mongoClient查询-
collectionObject.aggregate([{'$match':"proj_info.proj_team.member_emp_id":'55',"proj_info.proj_id":'91','emp_id':'11'}},
{'$unwind':"$proj_info"},
{'$match': {"proj_info.proj_team.member_emp_id":'55'}},
{'$unwind': "$proj_info.proj_team"},
{"$group": {"_id": "$_id","key": {"$first": "$key"},"proj_team": {"$push": "proj_info.proj_team"}}}]):
例如我想要的输出作为唯一的子文件中,其输入是 emp_id:11
,proj_id:91
和member_emp_id:55
。
我想要预期的输出=>
proj_team : {
name : 'Ravi'
member_emp_id : '55'
designation : 'manager'
}
请帮我解决。===================== -------- =================
谢谢,但是我仍然必须进行一些更改,因为它没有提供预期的输出,所以我进行了这些更改=>
collectionObject.aggregate([
{'$match':{'emp_id': '11', "proj_info.pro_id": '11' }},
{'$unwind': "$proj_info"},
{'$match': {"proj_info.proj_team.member_emp_id": '55' }},
{'$unwind': "$proj_info.proj_team"},
{'$project': {"proj_info.proj_team": 1,"_id" : 0}}
]):
这对我有用。
谢谢您的帮助。
问题内容: 我只想通过“ where子句”从数据库中选择(并返回)一个字段。代码是: 这将失败,并且回溯是: 如何选择并仅返回“ id”列?我也尝试了其他几种方法,但也失败了。是“ load_only”正确的选项吗? 问题答案: 一个对象接受实体查询作为位置参数,所以只是通过它: 返回第一个结果的第一个元素;如果未找到任何行,则返回None。它为多行引发异常。 表示仅应加载实体的给定基于列的属性,
问题内容: 如何仅返回MySQL中字段的第一个不同匹配项? 我的表: 我的查询(用于): 这将返回: 而不是:( 我追求的结果) 如何只获得每个唯一名称的第一个匹配项? 我想返回第一个,跳过第二个(以及任何后续的匹配项),但仍然得到(以及任何其他不同的匹配项,例如或)。 问题答案: 不能以这种方式工作,返回的所有列中的值都必须是不同的。 您可以始终在该函数上使用聚合函数,该函数将为每个函数返回一个
问题内容: 假设我与用户和项目之间存在多对多关系:一个用户可能属于多个项目,而一个项目可能具有多个用户。此关系在表中编码: 这是我的问题:给定一组用户(user1,user2,…),我想选择给定用户集为其所有用户的子集的所有项目。 例如,如果我在下面插入数据,然后询问用户1和2的所有项目,则查询应仅返回项目1。 (如果最好的解决方案恰巧是非标准的,那么我使用的是PostgreSQL。) 编辑: 为
我正在运行Mongodb 3.6。以下是我的文档结构,它存储产品列表的每月费率信息: 对相关联的计费卡的任何更改,都会将更新传播到“费率”数组中的多个子文档。 以下是需要应用于上述文档的更改 有没有一种方法可以在数组速率下更新子文档,而无需将整个文档加载到内存中,以便合并更改?假设我的子文档标识符是,和。 我可以使用
我有一个MongoDB存储来自不同传感器的数据。它具有以下结构: 例如,现在我需要“heart rate”-文档的所有字段和“data”-子文档的所有字段都符合条件“时间戳在1483537204000和1483537214000之间”。
今天下午,我一直在努力寻找一种方法,通过检查熊猫名字(标签?)中某个模式的出现,来选择我的熊猫数据目录中的几列。 (当然,可以应用任何函数) 然后,我找到了函数,并让它使用以下代码: 当然,在第一个解决方案中,我可以执行相同类型的regex检查,因为我可以将它应用于迭代返回的数据类型。
我目前正在Java应用程序上使用MongoDB的驱动程序。假设我将以下两个文档存储在一个集合中: 文件A: 文件B: 现在,我想通过使用key1和key2的值从集合中检索DocumentB的精确匹配,而不返回documenta,而不是_id,因为我事先不知道它。 如果我只是使用DocumentB作为查询(没有_id),Mongo也将返回DocumentA,因为它匹配所有的键和值,不考虑Docume
我有一个基于Spring Boot的Camel应用程序,有一个定义的路由应该轮询特定的文件夹(例如)。在这个文件夹中,有一些子文件夹按一天中的序号命名:196,197,198等。我需要过滤这些子文件夹,并选择名称中最大值的文件夹。换句话说,我需要动态地为文件组件选择文件夹,例如。 这样的子文件夹选择可以使用Camel实现吗? 更新:目前没有机会从代码中扫描根文件夹中的子文件夹,因此解决方案应该只依