在我的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文档:

投影可以显式地包括几个字段。在接下来的操作中,find()方法返回与查询匹配的所有文档。在结果集中,匹配的文档中只返回item和qty字段,默认情况下,返回_id字段。 db.inventory。查找({类型:'食物'},{项目:1,数量:1})

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


因此,你应该能够发出这样的声明:

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

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

如果我们不提到_id:0,返回的字段将是roll和_id。默认情况下总是显示'_id'字段。因此,我们需要显式地提到_id:0和roll。

其他回答

得到学生的名字

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

它等于-

从学生中选择卷

db.student。Find ({}, {"roll":1, "name":1, "_id":0})

它等于-

从学生中选择卷名

单次更新: db.collection_name。更新({field_name_1:(“价值”)},{$设置:{field_name_2:“new_value}});

对于MultiUpdate: db.collection_name。updateMany ({field_name_1:(“价值”)},{$设置:{field_name_2:“new_value}});

确保索引正确。

不确定这是否回答了问题,但我相信这是值得一提的。 还有一种方法可以选择单个字段(而不是多个),使用db.collection_name.distinct();

例如,db.student.distinct(‘滚’,{});

或者,第二种方法:使用db.collection_name.find().forEach();(此处可串联选择多个字段)

例如,db.collection_name.find () .forEach(函数(c1){打印(c1.roll);});

_id = "123321";_user =等待点赞。找到({liker_id: _id}, {liked_id:“$ liked_id "});; 让我们假设你在文档中有liker_id和liked_id字段,所以通过输入“$liked_id”,它将只返回_id和liked_id。