ObjectId в mongoDB 2.6 не работает

1

Я использую весенние данные mongodb в своем приложении. Он использует mongodb 2.6. Я хочу запросить документы коллекции по идентификатору, который mongo присваивает при вставке. Я делаю что-то вроде этого:

Query query = new Query();
String id = "542385a91f00bf7dbeae1fc7";
query.addCriteria(Criteria.where("_id").new Object(id));
template.find(query, entity.class);

Этот запрос переводится на:

{ "_id" : { "$oid" : "542385a91f00bf7dbeae1fc7"}}

Когда я выполняю то же самое на оболочке mongo, он дает ошибку:

error: {"$ err": "Can canicalize query: Неизвестный оператор BadValue: $ oid", "code": 17287}

Как я могу запросить идентификатор, используя весенние данные mongodb?

  • 0
    Вы не можете выполнить запрос с помощью { "_id" : { "$oid" : "542385a91f00bf7dbeae1fc7"}} в оболочке mongo, используя {"_id":ObjectId("542385a91f00bf7dbeae1fc7")} .
  • 0
    Хорошо. Когда я сделал SerializationUtils.serializeToJsonSafely (запрос), это то, что он напечатал. Так что, если мне нужно сделать запрос по идентификатору, как мне это сделать? Потому что query.addCriteria (Criteria.where ("_ id"). Is (new Object (id))); не работает Это дает мне 0 результат.
Показать ещё 1 комментарий
Теги:
spring-data-mongodb

1 ответ

0

Он должен читать

new ObjectId(id)

вместо new Object(id). Подробнее см. В документах API.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню