Javascript 返回Mongod查询
我有下一个问题: 使用distinct进行查询时,仅返回名称属性数组,例如:Javascript 返回Mongod查询,javascript,node.js,mongodb,mongoose,distinct-values,Javascript,Node.js,Mongodb,Mongoose,Distinct Values,我有下一个问题: 使用distinct进行查询时,仅返回名称属性数组,例如: var promise = clients.distinct("name", {"id_client_group": id_clientGroup, "id_client": id_client, "status": "active"}).exec(); 退回这个: ["client2, client3"] 当我需要对象的所有属性时 例如: 我尝试过进行常规搜索,并根据mongodb驱动程序返回完整的对象数组,这是
var promise = clients.distinct("name", {"id_client_group": id_clientGroup, "id_client": id_client, "status": "active"}).exec();
退回这个:
["client2, client3"]
当我需要对象的所有属性时
例如:
我尝试过进行常规搜索,并根据mongodb驱动程序返回完整的对象数组,这是distinct的预期行为 distinct命令返回集合中给定键的不同值列表 您应该尝试聚合,但我不确定在重复数据的情况下您要查找哪种数据
clients.aggregate([
{$match: {"id_client_group": id_clientGroup, "id_client": id_client, "status": "active"}},
{$group: {_id: "$name", mail:{$first:"$mail"}}}
])
您可能希望在group阶段尝试其他表达式,基于mongodb驱动程序签出文档,这是distinct的预期行为 distinct命令返回集合中给定键的不同值列表 您应该尝试聚合,但我不确定在重复数据的情况下您要查找哪种数据
clients.aggregate([
{$match: {"id_client_group": id_clientGroup, "id_client": id_client, "status": "active"}},
{$group: {_id: "$name", mail:{$first:"$mail"}}}
])
您可能希望在分组阶段尝试其他表达式,签出文档对于名称相同但邮件不同的文档,您希望得到什么结果?谢谢@AlexBlex,结果就是一个示例,我需要的是数据类型。定义数据类型。这是什么意思?@AlexBlex,对不起,听我解释。我的意思是,当执行distinct时,我得到一个具有不同名称的数组,我需要一个具有完整对象的数组,而不仅仅是我得到的这个部分的名称。我在问如果两个对象具有相同的名称,您对结果的期望是什么。对于具有相同名称但不同邮件的文档,您期望得到什么结果?谢谢@AlexBlex,结果就是一个示例,我需要的是数据类型。定义数据类型。这是什么意思?@AlexBlex,对不起,听我解释。我的意思是,当执行distinct时,我得到一个具有不同名称的数组,我需要一个具有完整对象的数组,而不仅仅是我得到的这个部分的名称。我在问如果两个对象具有相同的名称,您对结果的期望是什么。您可以用数据替换邮件:{$first:$mail},以获取整个文档:{$push:$$ROOT}。我相信这就是OP想要的。谢谢,这正是我需要的。您可以用数据替换邮件:{$first:$mail},以:{$push:$$ROOT}我想这就是OP想要的。谢谢,这就是我需要的。