У меня есть коллекции с именами пользователей, и я хочу получить конкретную запись о широте и долготе. В оболочке mongodb я добился желаемого результата, набрав это;
db.users.find({},{latitude:1,longitude:1})
Но в java у меня ничего не вышло. Что я сделал в java, так это:
List<Document> results = db.getCollection("users").find(eq("latitude":1,"longitude",1))
Итак, есть ли у кого-нибудь идея решить эту проблему?
вот структура моей коллекции;
{ "_id": "2", "username": "", "password": "", "firm": "SpringSource", "roles": [ "client" ], "items": [ { "_id": "030b0b88-9b9b-4886-b78e-32ec8cd0abe9", "item-id": "1111", "item-name": "Tea latte", "price": 11111, "quantity": 11 }, { "_id": "b320d345-630f-4068-8b50-63313b7d201b", "item-id": "2222", "item-name": "Mint Tea", "price": 2222, "quantity": 2222 }, { "_id": "d51e5391-5741-4d33-a481-4139df4ffa0e", "item-id": "3333", "item-name": "Black Tea", "price": 3333, "quantity": 33 }, { "_id": "961f52a3-d0d3-45e9-a1cb-475d2c9b272f", "item-id": "4444", "item-name": "Green Tea", "price": 4444, "quantity": 444 } ], "latitude": "39.909062", "longitude": "32.778401" }, { "_id": "3", "username": "", "password": "", "firm": "RedHat", "roles": [ "client" ] }, { "_id": "1", "username": "", "password": "", "firm": "SpringSource", "roles": [ "admin", "client" ], "items": [ { "_id": "79c35305-54d1-477e-957d-782f4bf2145a", "item-id": "11111", "item-name": "Americano", "price": 111, "quantity": 11 }, { "_id": "5c7e03eb-1fde-4932-a2bc-94a2f002b382", "item-id": "2222", "item-name": "Filter Coffee", "price": 2222, "quantity": 22 }, { "_id": "a413c06c-4242-4b30-80a9-62e7d7b84fb3", "item-id": "3333", "item-name": "tea", "price": 33333, "quantity": 44444 } ], "latitude": "39.877619", "longitude": "32.682537" }
Пожалуйста, объясните, что именно происходит при запуске вашего кода.
@ Steve11235 на самом деле, это спокойный вызов api, поэтому я не компилирую код, но когда я делаю спокойный вызов GET, он все возвращает.
@Compass точка с запятой забыта в комментариях, но существует в java-коде. По сути, моя проблема заключается в том, чтобы найти одинаковый оператор оболочки в java. Команда оболочки: "db.users.find ({}, {широта: 1, долгота: 1})".
Проекции stackoverflow.com/questions/6568910/… решили мою проблему.




Ваш оператор java не выглядит как действительный Java из-за этой точки с запятой. Это ошибка компиляции, что ли?