Return 的 Mongodb 查询不同

Return of Mongod Query Distinct

我有下一个问题: 当我使用不同的查询时,只有 returns 名称属性数组,例如:

var promise = clients.distinct("name", {"id_client_group": id_clientGroup, "id_client": id_client, "status": "active"}).exec();

return 这个:

["client2, client3"]

当我需要对象的所有属性时 示例:

[
{
    name: "client1",
    mail: "mail@1"
},
{
     name: "client2",
     mail: "mail@2"
}
]

我已尝试进行正常搜索,return对象数组已完成

基于 mongodb 驱动程序 API doc,这是 distinct 的预期行为。

The distinct command returns returns a list of distinct values for the given key across a collection.

您应该改为尝试聚合,但我不确定在重复数据的情况下您要查找哪种数据。

clients.aggregate([
    {$match: {"id_client_group": id_clientGroup, "id_client": id_client, "status": "active"}},
    {$group: {_id: "$name", mail:{$first:"$mail"}}}
])

你可能想在小组赛阶段尝试一些其他的表达方式,查看文档 here