2016-10-26 5 views
0

Я пытался написать критерии запроса с использованием Morphis что-то вроде:Morphia MongoDB поиск массив строки

db.Response.find({ $and: [ { fields: [ "NAME","EMAIL"]},{intent:"CHECKUSR" }] }) 

Можете ли вы помочь мне с этим? Проблема здесь в том, что мне нужно проверить с помощью массива, называемого полями, и указанный выше запрос в работе в MongoDB, но не смог найти подходящий вариант для морфий для этого. Любая помощь будет оценена по достоинству.

+0

Я могу помочь вам, если вы можете дать мне фактическую структуру вашего документа. –

+0

Поскольку он не позволяет размещать здесь весь контент; я опубликовал в качестве ответа на главную тему. Пожалуйста, прокрутите вниз –

ответ

0
Datastore ds = ... 
Query<Record> q = ds.createQuery(Record.class); 
q.and(
    q.criteria("Intent").equal(CHECKUSR), 
    q.criteria("fields.email").equal(EMAIL) 
); 

//list 
List<Record> entities = q.asList(); 

другой подход был бы

Query q = ds.createQuery(Record.class).field("fields").hasThisElement(email); 

это в основном является примером того, как вы можете написать свои критерии. Вы можете настроить его для своей цели.

в приведенных выше примерах Запись представляет собой класс, представляющий ваш документ

+0

Спасибо Satish, но одна проблема здесь, не так ли? Для меня «поля» - это поле в документе, а [«name», «email»] - это два элемента массива строк. поэтому ваше предложение не будет пытаться сравнивать. –

+0

, так что вы имеете в виду, что у вас есть документ {_id: someid, x: xvalue, y: yvalue, fields: ["someonename", "someoneemailid"]} правильно? и вам нужно запрашивать поля на основе значений имени и электронной почты? –

+0

Просто добавлен весь сценарий ниже .. Пожалуйста, смотрите. спасибо большое –

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