2015-07-25 4 views
0

Мне очень понравилось работать с rmongodb и выяснить, как делать много разных вещей/комбинаций запросов, но этот все еще пень. Я пытаюсь получить все документы, у которых есть символ: поле, равное элементу вектора (именованные символы в r).

запрос, который работает на моем MongoDB БД, что я пытаюсь повторить в г

{symbol: {"$in": ["SYMBOLA","SYMBOLB","SYMBOLC","SYMBOLD","SYMBOLE"]} } 

В г ...

symbols <- list("SYMBOLA","SYMBOLB","SYMBOLC","SYMBOLD","SYMBOLE") 
mongo.find.all(mongo, namespace, query = list(symbol = list('$in' = symbols))) 

Doesnt похоже на работу (так как я не привык к Синтаксис Я пробовал всевозможные комбинации без везения. Почувствуйте, что я чего-то не хватает.

Любая помощь в том, как я могу запросить конкретные документы на основе символьного вектора в R, будет огромной помощью.

EDIT: Вот оттиск BSON:

symbol : 3 
     $in : 4  
      0 : 2 SYMBOLA 
      1 : 2 SYMBOLB 
      2 : 2 SYMBOLC 
      3 : 2 SYMBOLD 
      4 : 2 SYMBOLE 

ответ

1

Это прекрасно работает на моей машине

symbols <- list("SYMBOLA","SYMBOLB","SYMBOLC","SYMBOLD","SYMBOLE") 
mongo <- mongo.create() 
for (ch in symbols) 
    mongo.insert(mongo, 'test.test', list(symbol = ch)) 
# insert one more symbol that don't match our condition 
mongo.insert(mongo, 'test.test', list(symbol = 'incorrect_symbol')) 

res <- mongo.find.all(mongo, 'test.test', query = list(symbol = list('$in' = symbols))) 
length(res) 
#> 5 
+0

Это, безусловно, ее часть, теперь по крайней мере у меня есть символы в виде списка , однако запрос все еще не работает. Я пробовал пару различных вариантов синтаксиса, а также попытался наращивать использование ... mongo.bson.from.list (lst = list (symbol = list ("$ in" = символы))) –

+0

Это странно, должно сработать. Используете ли вы последнюю версию rmongodb? Также вы можете проверить bson: 'print (mongo.bson.from.list (lst = list (symbol = list (" $ in "= символы))))' –

+0

Я добавил печать на главный пост, спасибо за ваша помощь в этом. Также используя rmongodb_1.8.0 –