如何在MongoDB中select一个字段?

在我的MongoDB中,我有一个包含10个logging的学生集合,其中包含字段nameroll 。 这个collections的一个logging是:

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

我想通过使用以下方法仅检索集合中所有10个logging的“滚动”字段:
SELECT roll FROM student

我经历了许多博客,但都导致一个查询,它必须有WHERE子句。 例如:
db.students.find({ "roll": { $gt: 70 })

该查询等同于:
SELECT * FROM student WHERE roll > 70

我的要求是只find一个领域没有任何条件。 那么,查询操作是什么呢。

提前致谢。

从MongoDB文档 :

投影可以明确包含几个字段。 在以下操作中,find()方法返回与查询匹配的所有文档。 在结果集中,只有项目和数量字段,默认情况下,_id字段在匹配文档中返回。

db.inventory.find({type:'food'},{item:1,qty:1})

在Mongo的这个例子中,返回的文档只包含itemqty_id的字段。


因此,您应该能够发出如下声明:

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

上述语句将select学生集合中的所有文档,并且返回的文档将仅返回roll字段(并排除_id )。

如果我们不提_id:0则返回的字段将是roll_id 。 '_id'字段默认显示。 所以我们需要明确提及_id:0roll

我认为mat90ly90有正确的答案,这是与模式/命令一起的另一个例子

db.collection.find( {}, {your_key:1, _id:0})

在这里输入图像描述

只是为了教育目的,你也可以用以下任何一种方式来做到这一点:

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); 

`

尝试以下查询:

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

希望这可以帮助!!

得到学生的名字

 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}) 
 db.student.find({}, {"roll":1, "_id":0}) 

这相当于 –

从学生select卷

db.student.find({},{“roll”:1,“name”:1,“_id”:0})

这相当于 –

从学生中select名单,姓名

在shell中使用这样的查询:

1.使用database_name

 eg: use database_name 

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

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

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

从学生select卷==> db.student.find(!{},{roll:1})

上面的逻辑有助于定义一些列(如果它们较less)