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

35 浏览
0 Comments

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

在我的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

我的要求是仅查找一个键,而不需要任何条件。那么,查询操作是什么。

admin 更改状态以发布 2023年5月21日
0
0 Comments

从表中获取所有数据

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子句和小于条件查找数据

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

SELECT * FROM student WHERE roll < '70'

0
0 Comments

MongoDB 文档 中得到以下信息:

投影可以显式地包括多个字段。在下面的操作中,find() 方法返回所有与查询匹配的文档。在结果集中,匹配的文档仅返回 item 和 qty 字段以及默认的 _id 字段。

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

在这个来自 Mongo 团队的例子中,返回的文档仅包含 item、qty 和 _id 字段。


因此,您应该能够发出类似以下的语句:

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

以上语句将选择 students 集合中的所有文档,并且返回的文档仅会返回 roll 字段(不包括 _id)。

如果我们不提及 _id:0,返回的字段将是 roll 和 _id。'_id' 字段总是默认显示的。因此,我们需要明确指定 _id:0 以及 roll。

0