Как выбрать одно поле в MongoDB?

В моем MongoDB у меня есть студенческая коллекция с 10 записями с name полей и roll . Один из записей этой коллекции:

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

Я хочу получить поле «roll» только для всех 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.find ({type: ‘food’}, {item: 1, qty: 1})

    В этом примере от людей в Mongo, возвращенные документы будут содержать только поля item , qty и _id .


    Таким образом, вы должны иметь возможность выпускать заявление, например:

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

    Вышеприведенный оператор выберет все документы в коллекции студентов, а возвращенный документ вернет только поле roll (и исключит _id ).

    Если мы не укажем _id:0 возвращаемые поля будут roll и _id . Поле «_id» всегда отображается по умолчанию. Поэтому нам нужно явно указать _id:0 вместе с roll .

    Я думаю, что mattingly890 имеет правильный ответ, вот еще один пример наряду с шаблоном / commmand

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

    введите описание изображения здесь

    получить все данные из одного поля с помощью _id

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

    SELECT roll FROM student

    получить все данные из одного поля без _id

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

    найти определенные данные, используя предложение where

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

    SELECT * FROM students WHERE roll = ’80’

    найти данные, используя предложение where и большее, чем условие

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

    SELECT * FROM student WHERE roll> ’70’

    найти данные, используя условие where и меньшее или равное условию

     db.student.find({ "roll": { $lte: 70 }}) 

    SELECT * FROM student WHERE roll <= '70'

    найти данные, используя предложение where и меньше, чем условие

     db.student.find({ "roll": { $lt: 70 }}) 

    SELECT * FROM student WHERE roll <'70'

    Для образовательных целей вы также можете сделать это одним из следующих способов:

    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(); 

    Надеюсь это поможет!!

    Это работает для меня,

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

    нет условия в where where, т.е. внутри первых фигурных скобок. внутри следующих фигурных скобок: список названий полей проектирования, необходимых в результате, и 1 указывает, что конкретное поле является частью результата запроса

    получение имени учащегося

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

    Здесь вы идете, 3 способа сделать, Кратчайший до скучного:

     db.student.find({}, 'roll _id'); // <--- Just multiple fields name space separated // OR db.student.find({}).select('roll _id'); // <--- Just multiple fields name space separated // OR db.student.find({}, {'roll' : 1 , '_id' : 1 ); // <---- Old lengthy boring way 

    Чтобы удалить конкретное поле - оператор:

     db.student.find({}).select('roll -_id') // <--- Will remove id from result 
     db.student.find({}, {"roll":1, "_id":0}) 

    Это эквивалентно –

    Выбрать бросок у студента

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

    Это эквивалентно –

    Выберите бросок, имя от студента

    Используйте запрос в оболочке:

    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 мы можем использовать ниже логику, я не уверен в предыдущих версиях

    выберите roll from student ==> db.student.find (! {}, {roll: 1})

    приведенная выше логика помогает определить некоторые столбцы (если они меньше)

    Если вы хотите получить поле «roll» только для всех 10 записей в коллекциях. Тогда попробуйте это.

    В MongoDb:

    db.students.find ({}, {“roll”: {“$ roll”})

    В Sql:

    выберите бросок у студентов

    Для лучшего понимания я написал похожий запрос MySQL.

     Selecting specific fields 

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

    MySQL: имя SELECT, адрес электронной почты, телефон FROM table_name;

     Selecting specific fields with where clause 

    MongoDB: db.collection_name.find ({email:’[email protected] ‘}, {name: true, email: true, phone: true});

    MySQL: имя SELECT, адрес электронной почты, телефон FROM table_name WHERE email = ‘[email protected]’;

     db..find({}, {field1: , field2:  ...}) 

    В вашем примере вы можете сделать что-то вроде:

     db.students.find({}, {"roll":true, "_id":false}) 

    проекция

    Параметр проекции определяет, какие поля возвращаются в соответствующих документах. Параметр проекции принимает документ следующего вида:

     { field1: , field2:  ... } 
     The  can be any of the following: 
    1. 1 или true, чтобы включить поле в документы возврата.

    2. 0 или false, чтобы исключить это поле.

    ЗАМЕТКА

    Для поля _id вам не нужно явно указывать _id: 1 для возврата поля _id. Метод find () всегда возвращает поле _id, если вы не укажете _id: 0 для подавления поля.

    ПРОЧИТАЙТЕ БОЛЬШЕ

    Давайте будем гением компьютера.