如何为MongoDB集合中的所有文档选择单个字段?

2024-04-27 03:07:33 发布

您现在位置:Python中文网/ 问答频道 /正文

在我的MongoDB中,我有一个学生集合,其中有10条记录,分别有nameroll字段。此集合的一个记录是:

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

我只想为集合中的所有10条记录检索字段roll,就像在传统数据库中一样,方法是使用:

SELECT roll FROM student

我浏览了许多博客,但所有这些都导致了一个查询,其中必须包含WHERE子句,例如:

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

查询相当于:

SELECT * FROM student WHERE roll > 70

我的要求是只找到一把没有任何条件的钥匙。那么,查询操作是什么呢。


Tags: 方法namefromid数据库mongodb记录传统
3条回答

从表中获取所有数据

db.student.find({})

SELECT * FROM student


从没有id的表中获取所有数据

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

SELECT name, roll FROM student


从一个id为的字段获取所有数据

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

SELECT id, roll FROM student


从一个没有id的字段获取所有数据

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

SELECT roll FROM student


使用where子句查找指定的数据

db.student.find({roll: 80})

SELECT * FROM students WHERE roll = '80'


使用where子句和大于条件查找数据

db.student.find({ "roll": { $gt: 70 }}) // $gt is greater than 

SELECT * FROM student WHERE roll > '70'


使用where子句查找大于或等于条件的数据

db.student.find({ "roll": { $gte: 70 }}) // $gte is greater than or equal

SELECT * FROM student WHERE roll >= '70'


使用where子句和小于或等于条件查找数据

db.student.find({ "roll": { $lte: 70 }}) // $lte is less than or equal

SELECT * FROM student WHERE roll <= '70'


使用where子句和小于to条件查找数据

db.student.find({ "roll": { $lt: 70 }})  // $lt is less than

SELECT * FROM student WHERE roll < '70'


MongoDB docs

A projection can explicitly include several fields. In the following operation, find() method returns all documents that match the query. In the result set, only the item and qty fields and, by default, the _id field return in the matching documents.

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

在这个来自Mongo的示例中,返回的文档将只包含itemqty_id字段。


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

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

上面的语句将选择students集合中的所有文档,返回的文档将只返回roll字段(并排除_id)。

如果不提_id:0,返回的字段将是roll_id。默认情况下,始终显示“\u id”字段。所以我们需要明确提到_id:0roll

我认为mattingly890的答案是正确的,下面是另一个例子以及模式/命令

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

enter image description here

相关问题 更多 >