我從提供程序中提取JSON數據並將其添加到使用R的mongodb中。我計劃在未來使用R和Shiny顯示數據。儘管我將數據放入JSON對象並將其插入到MongoDB中,但我現在仍然有一個問題。它添加對象,但將數據放在比我真正喜歡的位置低一級的位置。R和MongoDB:數組存儲爲索引作爲鍵的對象
這裏的數據是怎麼來的:
prettify(jsonKill)
[
{
"id" : {
"timestamp" : 1409785080,
"machine" : 11966932,
"pid" : 3144,
"increment" : 11720074,
"creationTime" : "2014-09-03T22:58:00Z"
},
...
]
這裏是我的代碼,增加了它的MongoDB:
library('jsonlite')
library('rmongodb')
m <- mongo.create()
ns <- 'database.collection'
killObject <- fromJSON('http://omitted.because.nda:8000/api/omit')
x <- nrow(killObject)
for(i in 1:x){
jsonKill <- toJSON(killObject[i:i,])
bson <- mongo.bson.from.JSON(jsonKill)
mongo.insert(m, ns, bson)
paste("Inserting Record: ", i)
}
cursor <- mongo.find(m, ns, bson)
while(mongo.cursor.next(cursor)){
value <- mongo.cursor.value(cursor)
list <- mongo.bson.to.list(value)
str(list)
}
下面是結果:
{
"_id" : ObjectId("54081299d5ec83d046d05766"),
"1" : {
"id" : {
"timestamp" : 1409756219,
"machine" : 2364985,
"pid" : 9076,
"increment" : 1079972,
"creationTime" : "2014-09-03T14:56:59Z"
},
...
}
我'm的目標是做db.collection.find({"id.pid" : $gt1})
或與mongo.index.create(m, ns, {"id.pid"}, mongo.index.unique)
索引的東西,不是必需的只有id
鍵,但一個或多個鍵不顯示在此處。
有可能服務返回一個json文檔而不是一個對象的數組?它有多個ID字段?請提供完整的答覆,只留下實際上多餘的部分。 – Raffael 2014-09-04 08:22:24
服務返回一個對象數組。以前,當我插入對象時,整個對象將作爲一個大對象進入。我只是想找到一些我不需要用'「。#.key.key」'引用的對象。這是通過我的for循環修復的,將它分開,並逐個插入每個對象和所有的子項,但是我仍然遇到了這個#字段阻礙了我的查詢/創建的問題。 – user1059110 2014-09-04 08:42:18