Я новичок в mongodb и все еще изучаю его, поэтому мой вопрос может быть наивным, поэтому, пожалуйста, потерпите его :) У меня есть только один объект json в mongodb, который выглядит так.
объект json
{
"URLStore": [
{
"description": "adf description",
"url": "www.adf.com"
},
{
"description": "pqr description",
"url": "www.pqr.com"
},
{
"description": "adf description",
"url": "www.adf.com"
}
]
}
Мне нужно запросить описание для URL-адреса, который соответствует заданному вводу. например здесь www.adf.com. У меня есть код, который запрашивает mongodb
запрос mongodb
BasicDBObject whereQuery = new BasicDBObject();
whereQuery.put("URLStore.url","www.pqr.com");
BasicDBObject fields=new BasicDBObject("URLStore.description", "");
cursor = collection.find(whereQuery,fields);
но результат примерно такой
{ "_id": { "$oid": "554b4046e4b072dd9deaf277" }, "URLStore": [ { "description": "pqr description" }, { "description": "adf description" }, { "description": "adf description" } ] }
На самом деле должно было вернуться только одно описание, так как соответствующие объекты с ключом www.pqr.com только одно. Что не так с моим запросом? м я что-то пропустил?
Я уже пробовал вопрос Получить только запрошенный элемент в массиве объектов в коллекции MongoDB, но при использовании упомянутого там решения будет возвращен только один объект/первое совпадение
$unwind
или$redact
. - person famousgarkin   schedule 07.05.2015