在Julia中有效地在MongoCursor和OrderedDict之间进行转换

时间:2016-10-23 17:51:01

标签: mongodb julia ordereddictionary

我使用mongo.jl并需要一种更有效的方式来转换MongoCursorOrderedDict

在这里,使用find抓取数据光标通常需要< 1秒。提取和转换为OrderedDict大约需要20秒。

using Mongo
...
collection = MongoCollection(client, "myDB", json)
dataPre = find(collection, Dict(category=>id)) #Returns type Mongo.MongoCursor
i = 1
data = DataStructures.OrderedDict()
for rec in dataPre
    data[i] = dict(rec)
    i=i+1
end

编辑:我通过使用@profile实现了95%的延迟是从dict到数组的转换,这是我从示例代码中省略的几行。

这里是带有省略行的相同示例代码:

using Mongo
...
collection = MongoCollection(client, "myDB", json)
dataPre = find(collection, Dict(category=>id)) #Returns type Mongo.MongoCursor
i = 1
data = DataStructures.OrderedDict()
form_arr = Array(Float64,(100,100,8,length(dataPre)))
for rec in dataPre
    data = dict(rec)                                                        #A
    for v1 = 1:100
         for v2 = 1:8
             form_arr[v1,:,v2,i] = data["info"][v1]["meas"][v2]["vals"]     #B
         end
    end
    i=i+1
end

剖析器指示A行占用约5%的时间,而B行占95%的时间。

我坚持使用那个dict结构..有没有办法更有效地提取和格式化数据?

0 个答案:

没有答案