私が扱っているMongoデータベースのコレクションのアイテムには、フィールド「UID」があります。UID が 1、2、または 5 のすべてのアイテムを探したいと思います。
MongoVUE クエリは次のとおりです。
{"UID":{"$in":[1, 2, 5]}}
これは機能します。
のクエリは次のrmongodb
とおりです。
cursor <- mongo.find(mongo, ns,
query = list(UID = list('$in' = c(1,2,5))))
dummy <- mongo.cursor.next(cursor)
db.value <- mongo.cursor.value(cursor)
db.value
# NULL
別の試み:
cursor <- mongo.find(mongo, ns,
query = '{"UID":{"$in":[1,2,5]}}')
同じ結果です。ただし、これを 1 つのアイテムだけを取得しようとすると、次のようになります。
cursor <- mongo.find(mongo, ns,
query = list(UID = 1))
できます。
何がうまくいかないのですか?
アップデート:
以下が実際に機能することがわかりました。
cursor <- mongo.find(mongo, ns,
query = list(UID = list('$in' = c(1,2,5))))
ただし、ベクトルに複数の要素がある場合のみ。テスト目的で 1 要素ベクトルを使用していましたが ( c(1)
)、失敗しました。これがバグなのか、それとも何らかの理由で予期された動作なのかはわかりません。
JSON クエリはまだ機能しません。
アップデート:
の結果は次のsessionInfo()
とおりです。
R version 3.0.3 (2014-03-06)
Platform: x86_64-w64-mingw32/x64 (64-bit)
locale:
[1] LC_COLLATE=German_Germany.1252 LC_CTYPE=German_Germany.1252 LC_MONETARY=German_Germany.1252 LC_NUMERIC=C
[5] LC_TIME=German_Germany.1252
attached base packages:
[1] stats graphics grDevices utils datasets methods base
other attached packages:
[1] mixtools_1.0.1 segmented_0.3-1.0 MASS_7.3-32 boot_1.3-11 plyr_1.8.1 reshape2_1.4 data.table_1.9.4
[8] stringr_0.6.2 ggplot2_0.9.3.1 XML_3.98-1.1 rmongodb_1.6.5
loaded via a namespace (and not attached):
[1] chron_2.3-45 colorspace_1.2-4 digest_0.6.4 grid_3.0.3 gtable_0.1.2 jsonlite_0.9.7 munsell_0.4.2
[8] proto_0.3-10 Rcpp_0.11.1 scales_0.2.4 tools_3.0.3