我是MongoDB的新手,因此很难从那里获得独特的价值。
这是集合中的文档,我要按“ CustomerAccountNo” 进行区分(这是重复值= 165)
{
"_id": "5e3eaf3ef5aab73568bd8494",
"CustomerAccountNo": "123",
"Customer": "Lucy Thom"
},
{
"_id": "5e3eaf40f5aab73568bd8495",
"CustomerAccountNo": "325",
"Customer": "Nick Granger"
},
{
"_id": "5e3eaf42f5aab73568bd8496",
"CustomerAccountNo": "658",
"Customer": "Tommy Tee"
},
{
"_id": "5e3eaf44f5aab73568bd8497",
"CustomerAccountNo": "6513",
"Customer": "Carlos Nolasco"
},
{
"_id": "5e3eaf49f5aab73568bd8498",
"CustomerAccountNo": "165",
"Customer": "Hungarian Pastry shop"
},
{
"_id": "5e4660e9f57ea925a42b4ba2",
"CustomerAccountNo": "165",
"Customer": "Hungarian Pastry shop"
}
并希望输出如下:
{
"_id": "5e3eaf3ef5aab73568bd8494",
"CustomerAccountNo": "123",
"Customer": "Lucy Thom"
},
{
"_id": "5e3eaf40f5aab73568bd8495",
"CustomerAccountNo": "325",
"Customer": "Nick Granger"
},
{
"_id": "5e3eaf42f5aab73568bd8496",
"CustomerAccountNo": "658",
"Customer": "Tommy Tee"
},
{
"_id": "5e3eaf44f5aab73568bd8497",
"CustomerAccountNo": "6513",
"Customer": "Carlos Nolasco"
},
{
"_id": "5e3eaf49f5aab73568bd8498",
"CustomerAccountNo": "165",
"Customer": "Hungarian Pastry shop"
}
我正在尝试下面的代码来获得上述响应,
collectionName.distinct("CustomerAccountNo")
或
collectionName.aggregate([
{ $group: { _id: { CustomerAccountNo: "$CustomerAccountNo", Customer: "$Customer" } } }
]);
但是上面的两个代码都没有按我的意愿正确归档响应,而且我不知道自己在做什么错。
答案 0 :(得分:3)
此聚合将获得所需的结果:
db.test.aggregate( [
{ $group: { _id: "$CustomerAccountNo", doc: { $first: "$$ROOT" } } },
{ $replaceRoot: { newRoot: "$doc" } }
] ).pretty()