如何在MongoDB中select一个字段?
在我的MongoDB中,我有一个包含10个logging的学生集合,其中包含字段name
和roll
。 这个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的这个例子中,返回的文档只包含item
, qty
和_id
的字段。
因此,您应该能够发出如下声明:
db.student.find({}, {roll:1, _id:0})
上述语句将select学生集合中的所有文档,并且返回的文档将仅返回roll
字段(并排除_id
)。
如果我们不提_id:0
则返回的字段将是roll
和_id
。 '_id'字段默认显示。 所以我们需要明确提及_id:0
和roll
。
我认为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)