2016-07-29 2 views
0

Я настроил некоторые тестовые данные в MongoDB, которая имеет следующий вид:MongoDB: Извлечение всего массива из конкретного документа

{ 
    "_id" : ObjectId("579ab44c0f9f0dc3aeec42ab"), 
    "name" : "Bob", 
    "references" : [ 1, 2, 3, 4, 5, 6 ] 
} 

{ 
    "_id" : ObjectId("579ab7a20f9f0dc3aeec42ac"), 
    "name" : "Jeff", 
    "references" : [ 11, 12, 13, 14, 15 ] 
} 

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

db.test_2.find({"name" : "Bob"}, bob).pretty() 

В основном общий вопрос, как вернуть массив для одного документа в коллекции в MongoDB? Если бы я мог помочь, это было бы очень признательно!

+0

Возможный дубликат [Как выбрать одно поле в MongoDB?] (Http://stackoverflow.com/questions/25589113/how-to-select-a-single-field-in-mongodb) – styvane

ответ

1

Вы можете добавить проекционный документ, чтобы ограничить возвращаемые поля.

Например: db.products.find ({кол-во: {$ Gt: 25}}, {Пункт: 1, кол-во: 1})

Посмотрите на документацию: https://docs.mongodb.com/manual/reference/method/db.collection.find/#db.collection.find

Другой вариант - выбрать поле из данного документа (если вы используете его, например, в цикле).

В любом случае mongo вернет json-документ, из которого вы должны взять массив.

Привет Jony

+0

Спасибо Jony! Извините, я, вероятно, не объяснил это достаточно хорошо в моем первоначальном вопросе. Ваше решение просто даст мне один массив ссылок. Мне особенно нужны ссылки Боба. Другими словами, с указанием имени человека, верните ссылки этого человека. Я смотрел предыдущие сообщения, и они, казалось, подразумевали, что мне нужен «и» оператор где-то, но это не имело для меня слишком большого смысла. – sachkj

+0

'db.test_2.find ({name:" Bob "}, {ссылки: 1});' не работает? – Odonno

+0

@SachinJain, возвращаемый массив ссылок, найденный в запросе, а именно ссылки Боба. – cohenjo

-1

db.test_2.find ({ "имя": "Боб"}, { "ссылки": 1});

Смежные вопросы