2015-09-23 3 views
1

В настоящее время я пытаюсь научиться работать с MongoDB в Java. Я создал сборник «заговоры» и вставил документ:MongoDB: Простой вопрос вопроса

final Document plotObj = new Document(); 
     plotObj.put(DataKey.PLOT_UUID.getKey(), plot.getUniqueId()); 
     plotObj.put(DataKey.REGION_ID.getKey(), plot.getRegionId()); 
     plotObj.put(DataKey.REGION_WORLD.getKey(), plot.getRegionWorld()); 
     plotObj.put(DataKey.REGION_OWNER.getKey(), plot.getPlotOwner().isPresent() ? plot.getPlotOwner() : null); 
     plotObj.put(DataKey.PLOT_TRUSTED.getKey(), new BasicDBList().addAll(plot.getTrusted())); 
     this.collection.insertOne(plotObj); 

«DataKey.PLOT_UUID.getKey()» представляет собой строку. "plot.getUniqueId()" представляет java.util.UUID. После вставки этого документа, я хочу, чтобы запросить его:

public boolean hasPlot(UUID plotId){ 
    final BasicDBObject query = new BasicDBObject(DataKey.PLOT_UUID.getKey(), new BasicDBObject("$eq", plotId)); 
    return this.collection.find(query).iterator().hasNext(); 
} 

Однако эти методы всегда возвращает ложное событие, хотя документ был успешно вставлен.

Возможно, эта проблема может быть исправлена ​​с легкостью, но тем не менее: спасибо заранее! :)

+0

Это может быть следствием поведения «близком к реальному времени» в MongoDB? Я читал об этом, но больше не могу найти ссылку. В mongodb возможно, что mongodb-query не находит объект, который только что был вставлен. Может быть, вы можете установить таймер и протестировать свой запрос с небольшой задержкой? – nabinca

+0

Даже после перезапуска приложения он возвращает false. Мне нужен этот метод, чтобы убедиться, что мне нужно вставить или обновить документ. – leNic

+0

Так что, похоже, осталось только два очевидных варианта: Запланировано ли вы передать свой метод, а не plotId, который вы сохранили в базе данных? или: ваша библиотека не обрабатывает uuid правильно? – nabinca

ответ

0

Согласно документации, вам не понадобится $ эк просто написать

new BasicDBObject(DataKey.PLOT_UUID.getKey(), plotId)); 
+0

Он все еще возвращает false: http://puu.sh/klFO1/ee714b4fe3.png – leNic

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