1

R を使用して、Google Directions API からのレコードを含む MongoDb テーブルにアクセスしています。値にアクセスでき_idますが、データベース内の別のキーにアクセスしようとするとエラーが発生しますdata。これは、ルートに関するすべての情報を含む配列です。を使用して配列をクエリする方法はありますrmongodbか?

以下のコードでは、最初にコレクション内のレコード数を確認します。次にmongo.distinct()、すべてのオブジェクト ID についてデータベースにクエリを実行すると、次のインデックスであるデータにアクセスしようとすると問題が発生します。なぜこれが起こっているのですか?MongoDB コンパスからの両方のインデックスに関する情報を含む画像を含めました。

ここに画像の説明を入力

> if(mongo.is.connected(mongo) == TRUE) {
+   help("mongo.count")
+   mongo.count(mongo, coll)
+ }
[1] 106500



> res <- mongo.distinct(mongo, coll, "_id")
> head(res)
$`0`
{ $oid : "57583d1057aa3d0499a85aab" }

$`1`
{ $oid : "57583d1157aa3d0499a85aad" }

$`2`
{ $oid : "57583d1257aa3d0499a85aaf" }

$`3`
{ $oid : "57583d1357aa3d0499a85ab1" }

$`4`
{ $oid : "57583d1457aa3d0499a85ab3" }

$`5`
{ $oid : "57583d1557aa3d0499a85ab5" }



> res <- mongo.distinct(mongo, coll, "data.legs")
Warning message:
In mongo.distinct(mongo, coll, "data.legs")
4

1 に答える 1

0

しようとしているのとまったく同じようにクエリできるはずです。

あなたのデータがない場合、ここに実際の例があります

library(rmongodb)

mongo <- mongo.create(db = "test")

## create some data
lst <- list(lat = -37.9,
            lon = 144.5,
            image_url = letters)

## insert data
mongo.insert(mongo, "test.array_test", mongo.bson.from.list(lst))

mongodb クライアント (私は Robomongo を使用しています) では、データを見ることができます。これimage_urlは配列です

ここに画像の説明を入力

したがって、クエリは機能するはずです

## query data on the 'image_url' array
mongo.distinct(mongo, "test.array_test", key = "image_url")
# [1] "a" "b" "c" "d" "e" "f" "g" "h" "i" "j" "k" "l" "m" "n" "o" "p" "q" "r" "s" "t" "u" "v" "w" "x" "y" "z"

さらにデータを挿入して、同じクエリを実行できます

lst <- list(lat = -37.8,
            lon = 144.4,
            image_url = c("string1","string2"))

mongo.insert(mongo, "test.array_test", mongo.bson.from.list(lst))

mongo.distinct(mongo, "test.array_test", key = "image_url")
# [1] "a"       "b"       "c"       "d"       "e"       "f"       "g"       "h"       "i"       "j"       "k"       "l"      
# [13] "m"       "n"       "o"       "p"       "q"       "r"       "s"       "t"       "u"       "v"       "w"       "x"      
# [25] "y"       "z"       "string1" "string2"
于 2016-07-16T09:17:42.367 に答える