2016-08-22 1 views
0

Я пытаюсь использовать «$» и оператор в Haskell MongoDB, который не работает:

myFilter = do 
    cursor <- MongoDB.find (MongoDB.select ["$and" =: [["field1" =: "test1"], ["field2" =: "test2"], ["field3" =: "test3"]]], "db") 
    rest cursor 

Спасибо заранее.

+1

Что означает «не работает»? Есть ли сообщение об ошибке? Если да, то что он говорит? Чего ты ожидал? Что ты получил? Какую версию пакета вы используете? – dfeuer

+0

@dfeuer: Не удалось совместить ожидаемый тип 'Query' с фактическим типом '(Collection -> aQueryOrSelection0, String)' – David

+0

Я хочу запросить несколько полей с оператором $ и. Является ли этот синтаксис ОК? – David

ответ

3

У вас есть ненужная запятая перед «db», которая вызывает ошибку типа.

Попробуйте это:

myFilter = do 
    cursor <- MongoDB.find (MongoDB.select ["$and" =: [["field1" =: "test1"], ["field2" =: "test2"], ["field3" =: "test3"]]] "db") 
    rest cursor 

Примечание:

  • вы на самом деле не нужно использовать "$ и", потому что это по умолчанию.
  • где вы указываете «db» - это имя коллекции.
+1

Большое спасибо Стивен :) – David

+0

Это действительно помогло мне сделать $ или запрос, я потратил часы на поиск в сети. –