【问题标题】:Selecting distinct values in MongoDB while using Studio 3T使用 Studio 3T 时在 MongoDB 中选择不同的值
【发布时间】:2019-10-21 12:36:56
【问题描述】:

我想从我的收藏中选择不同的值。我现在的查询是这样的:

use mongo;
db.getCollection("Students").find(
    { 
        "Name" : {
            "$exists" : true
        }, 
        "Last_Name" : {
            "$exists" : true
        }, 
        "Studies" : "Computer Technologies"
    }, 
    { 
        "Name" : 1.0, 
        "Surname" : 1.0, 
        "Studies" : 1.0, 
        "Semester" : 1.0
    }
);

我的收藏看起来像

id1 name1 last_name1 studies1 semester1 course1
id2 name1 last_name1 studies1 semester1 course2
id3 name1 last_name1 studies1 semester1 course3 
.....
id10 name2 last_name2 studies1 semester1 course1
id11 name2 last_name2 studies1 semester1 course2
id12 name2 last_name2 studies1 semester1 course3

这就是我运行查询时得到的结果。

我想获得来自某些研究(在本例中来自计算机技术研究)的所有学生的信息,并且我为每个学生获得了额外的价值,因为每个学生都有他注册的每门课程的单独集合。

所以,我想得到这个结果。

name1 last_name1 studies1
name2 last_name2 studies1
name3 last_name3 studies1

谢谢。

附: 我正在使用 Studio 3T。

【问题讨论】:

    标签: mongodb select distinct


    【解决方案1】:
    db.getCollection("Students").find({},{name1:1,last_name1:1,studies1:1,_id:0})
    

    像这样,试试吧..

    【讨论】:

    • 谢谢,但我无法让它工作。它只返回一个文档中的 _id 列,该列是空的。
    • db.getCollection('services').find({},{name:1,desc:1,_id:0}) { "name" : "demo1", "desc" : " " } /* 4 / { "name" : "Demo", "desc" : "" } / 5 */ { "name" : "sa", "desc" : "" }
    • 我没有通过之前的命令获得我需要的值(我获得了所有存在的数据并且我需要不同的数据)。让我试试这个。再次感谢您尝试帮助我。
    【解决方案2】:

    Studio 3T 可以选择用 SQL 编写查询,然后将它们转换为 mongo。

    我在 SQL 中使用了“select distinct”,它返回了我的带有聚合函数的 mongo 查询。所以,我想这是解决问题的一种方法。

    需要注意的一件事是在选择字段时注意大写字母,因为“名称”和“名称”不一样。如果你写错了版本,你将不会得到任何数据。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-04-05
      • 1970-01-01
      • 1970-01-01
      • 2019-05-21
      • 1970-01-01
      • 2018-05-01
      • 1970-01-01
      • 2020-09-16
      相关资源
      最近更新 更多