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

我的要求是只找到一个钥匙,不附带任何条件。它的查询操作是什么。


当前回答

使用Studio 3T for MongoDB,如果我使用.find({}, {_id: 0, roll: true}),它仍然返回一个带有空_id属性的对象数组。

使用JavaScript map帮助我只检索所需的滚动属性作为字符串数组:

var rolls = db.student
  .find({ roll: { $gt: 70 } }) // query where role > 70
  .map(x => x.roll);           // return an array of role

其他回答

尝试以下查询:

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

如果你正在使用控制台,你可以添加pretty()使其易于阅读。

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

希望这能有所帮助!!

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

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

> db.mycollection.find().pretty();

{
    "_id": ObjectId("54ffca63cea5644e7cda8e1a"),
    "host": "google",
    "ip": "1.1.192.1"
}
db.mycollection.find({},{ "_id": 0, "host": 1 }).pretty();

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

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

确保索引正确。

为了更好地理解,我写了类似的MySQL查询。

Selecting specific fields 

MongoDB: db.collection_name.find({},{name:true,email:true,phone:true}); SELECT name,email,phone FROM table_name;

Selecting specific fields with where clause

MongoDB: db.collection_name.find({email:'you@email.com'},{name:true,email:true,phone:true}); SELECT name,email,phone FROM table_name WHERE email = 'you@email.com';

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