Удалите _id из результата запроса mongoose, чтобы преобразовать его в простой массив [duplicate]

sizeof(array) / sizeof(array[0])
117
задан Ankur Loriya 14 February 2018 в 09:30
поделиться

13 ответов

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

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

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

3
ответ дан Aishwarya Panchal 17 August 2018 в 11:16
поделиться

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

В MongoDb:

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

< / blockquote>

В Sql:

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

0
ответ дан Biju Maharjan 17 August 2018 в 11:16
поделиться

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

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

enter image description here [/g0]

45
ответ дан CPU 100 17 August 2018 в 11:16
поделиться

получить все данные из одного поля с помощью _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 & lt; = '70'

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

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

SELECT * FROM student WHERE roll & lt; '70'

11
ответ дан gowtham 17 August 2018 в 11:16
поделиться

Для лучшего понимания я написал похожий запрос 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: 'you @ email.com '}, {name: true, email: true, phone: true});

MySQL: имя SELECT, адрес электронной почты, телефон FROM table_name WHERE email =' you@email.com ';

0
ответ дан Hasib Kamal 17 August 2018 в 11:16
поделиться

Попробуйте выполнить следующий запрос:

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

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

3
ответ дан Karan Khanna 17 August 2018 в 11:16
поделиться

получение имени студента

student-details = db.students.find({{ "roll": {$gt: 70} },{"name": 1, "_id": False})

получение имени & amp; рулон ученика

student-details = db.students.find({{ "roll": {$gt: 70}},{"name": 1,"roll":1,"_id": False})
2
ответ дан PrabhuPrakash 17 August 2018 в 11:16
поделиться

В mongodb 3.4 мы можем использовать ниже логику, я не уверен в предыдущих версиях

select roll from student ==> db.student.find (! {}, {roll: 1})

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

0
ответ дан Pulla 17 August 2018 в 11:16
поделиться
db.student.find({}, {"roll":1, "_id":0})

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

Выбрать рулон из ученика

db.student.find ({}, {"roll": 1, «name»: 1, «_id»: 0})

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

Выбрать рулон, имя от ученика

0
ответ дан Rito 17 August 2018 в 11:16
поделиться

Из документов 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.

154
ответ дан therealrootuser 17 August 2018 в 11:16
поделиться
  • 1
    Не похоже, чтобы Google это, так что стоит сделать снимок. Вам нужно явно исключить все поля, которые вы не хотите? Предположим, вам нужно только одно поле, но в документе есть 10, вам нужно явно установить 0 для 9 из них? Изменить: Nevermind, исключая _id, т. Е. {field_I_want:1, _id:0}, похоже, работает – Karl Tryggvason 11 October 2016 в 11:07
  • 2
    Можно ли добавить поле, а затем обновить документ, если я использую проекции? – chovy 13 December 2016 в 00:18

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

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

`

4
ответ дан Vaggelis Stefanakis 17 August 2018 в 11:16
поделиться

Здесь вы идете, 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
1
ответ дан Vivek Doshi 17 August 2018 в 11:16
поделиться

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

1. Используйте database_name

e.g: use database_name

2. Которая возвращает только информацию о конкретной полевой информации при согласовании, _id:0 указывает, что не показывать ID в результате

db.collection_name.find( { "Search_Field": "value" }, 
                  { "Field_to_display": 1,_id:0 }  )
0
ответ дан ρяσѕρєя K 17 August 2018 в 11:16
поделиться
Другие вопросы по тегам:

Похожие вопросы: