在我的MongoDB中,我有一个学生集合,其中有10条记录,字段为name和roll。这个收藏的一个记录是:

{
    "_id" : ObjectId("53d9feff55d6b4dd1171dd9e"),
    "name" : "Swati",
    "roll" : "80",
}

我想检索字段滚动仅为集合中的所有10条记录,因为我们会在传统数据库中使用:

SELECT roll FROM student

我浏览了很多博客,但所有的结果都是一个必须有WHERE子句的查询,例如:

db.students.find({ "roll": { $gt: 70 })

查询等价于:

SELECT * FROM student WHERE roll > 70

我的要求是只找到一个钥匙,不附带任何条件。它的查询操作是什么。


当前回答

在mongodb 3.4中,我们可以使用下面的逻辑,我不确定以前的版本

Select roll from student ==> db.student.find(!{}, {1}):

上面的逻辑有助于定义一些列(如果它们更少的话)

其他回答

在mongodb 3.4中,我们可以使用下面的逻辑,我不确定以前的版本

Select roll from student ==> db.student.find(!{}, {1}):

上面的逻辑有助于定义一些列(如果它们更少的话)

尝试以下查询:

db.student.find({}, {roll: 1, _id: 0});

如果你正在使用控制台,你可以添加pretty()使其易于阅读。

db.student.find({}, {roll: 1, _id: 0}).pretty();

希望这能有所帮助!!

出于教育目的,你也可以用以下任何一种方法:

1.

    var query = {"roll": {$gt: 70};
    var cursor = db.student.find(query);
    cursor.project({"roll":1, "_id":0});

2.

    var query = {"roll": {$gt: 70};
    var projection = {"roll":1, "_id":0};
    var cursor = db.student.find(query,projection);

`

得到学生的名字

student-details = db.students.find({{ "roll": {$gt: 70} },{"name": 1, "_id": False})

获取学生的姓名和名单

student-details = db.students.find({{ "roll": {$gt: 70}},{"name": 1,"roll":1,"_id": False})

在shell中像这样使用Query:

1. 使用database_name

e.g: use database_name

2. 它只返回资产特定的字段信息匹配时,_id:0指定不显示ID的结果

db.collection_name.find( { "Search_Field": "value" }, 
                  { "Field_to_display": 1,_id:0 }  )