mongodb - MongoDB:如何不重复收集
问题描述
我的查询:
db.Customer.aggregate({$project:{"CustNum":1, "CustName":1, "_id":0}})
结果:
{ "CustNum" : 101, "CustName" : "Juan Dela Cruz" }
{ "CustNum" : 103, "CustName" : "Jose Nicholas" }
{ "CustNum" : 101, "CustName" : "Juan Dela Cruz" }
{ "CustNum" : 101, "CustName" : "Juan Dela Cruz" }
{ "CustNum" : 101, "CustName" : "Maria Makiling" }
我的问题:如您所见,我应该为 CustName 和 CustNum 提供 3 个名称。我的输出应该是这样的
{ "CustNum" : 101, "CustName" : "Juan Dela Cruz" }
{ "CustNum" : 103, "CustName" : "Jose Nicholas" }
{ "CustNum" : 101, "CustName" : "Maria Makiling" }
如何做到这一点?我尝试使用 distinct 但它只显示一个错误。
第一次尝试查询:
db.Customer.distinct().aggregate({$project:{"CustNum":1, "CustName":1, "_id":0}})
第二次尝试查询:
db.Customer.distinct().aggregate({$project:{"CustNum":1, "CustName":1, "_id":0}})
解决方案
你需要使用组,
db.collection.aggregate([
{
"$group": {
"_id": "$CustName",
"CustName": {
"$first": "$CustName"
},
"CustNum": {
"$first": "$CustNum"
},
}
}
])
工作Mongo游乐场
推荐阅读
- pandas - 使用熊猫导入excel文件时出现内存错误
- swift - Textview 只显示最后一个查询项 - MacOS App
- c# - 在 VB6 中从 Form1 调用 Form2 使用实例问题
- python - 将变量从一个 python 脚本导入另一个不起作用
- c# - 如何在 vs 中使用 c# 在 WPF 托管页面上插入属性?
- authentication - 如何使用 Nuxt 和 nuxt-auth 模块验证多个 api
- r - R cut 功能 - 中断在哪里开始和结束?
- terraform - gitlab-ci:Terraform 没有名为“sh”的命令。您指的是 “show”
- python - 修正单纯形法进入死循环
- angularjs - 为什么赛普拉斯不选中复选框?