MongoDB
DolphinDB mongodb插件可以建立与mongodb服务器的连接,然后导入数据到DolphinDB的内存表中。
mongodb插件目前支持版本:relsease200, release130, release120。
在插件市场安装插件
版本要求
- DolphinDB Server: 2.00.10及更高版本
安装步骤
在DolphinDB 客户端中使用 listRemotePlugins 命令查看插件仓库中的插件信息。
login("admin", "123456") listRemotePlugins()
使用 installPlugin 命令完成插件安装。
installPlugin("mongodb")
使用
loadPlugin
命令加载插件。loadPlugin("mongodb")
接口说明
mongodb::connect
语法
mongodb::connect(host, port, user, password, [db])
参数
- host:MongoDB服务器的地址,类型为string。
- port:MongoDB服务器的端口,类型为int。
- user:MongoDB服务器的用户名,类型为string。如果没有开启mongodb用户权限认证,则填写空字符串""。
- password:MongoDB服务器的密码,类型为string。如果没有开启mongodb用户权限认证,则填写空字符串""。
- db:验证登录用户的数据库,类型为string。在mongodb中存储对应登录用户的数据库。如果不填写,将以参数
host
指定的mongodb服务器的admin
数据库进行登录用户验证。
详情
与MongoDB服务器建立一个连接。返回一个MongoDB连接的句柄,用于load。
例子
conn = mongodb::connect(`localhost, 27017, `root, `root, `DolphinDB)
conn2 = mongodb::connect(`localhost, 27017, `root, `root)
mongodb::load
语法
mongodb::load(connection, collcetionName, query, option, [schema])
参数
- connection:通过mongodb::connect获得的MongoDB连接句柄。
- collcetionName:一个MongoDB中集合的名字。有两种参数模式( collectionName 和 databaseName:collectionName ),第一种会查询在调用mongodb::connect时指定的数据库db,第二种是查询指定database中的collection。
- query:MongoDB查询条件,JSON字符串,类似:{ "aa" : { "$numberInt" : "13232" } }, { "datetime" : { "$gt" : {"$date":"2019-02-28T00:00:00.000Z" }} }。
- option:MongoDB查询选项,JSON字符串,类似:{"limit":123}对查询结果在MongoDB中进行预处理再返回。
- schema:包含列名和列的数据类型的表。如果我们想要改变由系统自动决定的列的数据类型,需要在schema表中修改数据类型,并且把它作为load函数的一个参数。
详情
将MongoDB的查询结果导入DolphinDB中的内存表。支持的数据类型以及数据转化规则参见用户手册数据类型
章节。
例子
conn = mongodb::connect(`localhost, 27017, `root, `root, `DolphinDB)
query='{ "datetime" : { "$gt" : {"$date":"2019-02-28T00:00:00.000Z" }} }'
option='{"limit":1234}'
tb=mongodb::load(conn, `US,query,option)
select count(*) from tb
tb2 = mongodb::load(conn, 'dolphindb:US',query,option)
select count(*) from tb
schema=table(`item`type`qty as name,`STRING`STRING`INT as type)
tb2 = mongodb::load(conn, 'dolphindb:US',query,option,schema)
mongodb::aggregate
语法
mongodb::aggregate(connection, collcetionName, pipeline, option, [schema])
参数
- connection:通过mongodb::connect获得的MongoDB连接句柄。
- collcetionName:一个MongoDB中集合的名字。有两种参数模式( collectionName 和 databaseName:collectionName ),第一种会查询在调用mongodb::connect时指定的数据库db,第二种是查询指定database中的collection。
- pipeline:MongoDB聚合管道,JSON字符串,类似:{$group : {_id : "$by_user", num_tutorial : {$sum : 1}}}。
- option:MongoDB查询选项,JSON字符串,类似:{"limit":123}对查询结果在MongoDB中进行预处理再返回。
- schema:包含列名和列的数据类型的表。如果我们想要改变由系统自动决定的列的数据类型,需要在schema表中修改数据类型,并且把它作为load函数的一个参数。
详情
将MongoDB的(聚合)查询结果导入DolphinDB中的内存表。支持的数据类型以及数据转化规则参见用户手册数据类型
章节。
例子
conn = mongodb::connect(`localhost, 27017, "", "", `DolphinDB)
pipeline = "{ \"pipeline\" : [ { \"$project\" : { \"str\" : \"$obj1.str\" } } ] }"
option="{}"
mongodb::aggregate(conn, "test1:collnetion1",pipeline,option)
mongodb::close
语法
mongodb::close(connection)
参数
- connection:通过mongodb::connect获得的MongoDB连接句柄。
详情
关闭一个MongoDB连接句柄。
例子
conn = mongodb::connect(`localhost, 27017, `root, `root, `DolphinDB)
query=`{ "datetime" : { "$gt" : {"$date":"2019-02-28T00:00:00.000Z" }} }
option=`{"limit":1234}
tb = mongodb::load(conn, `US,query,option)
select count(*) from tb
mongodb::close(conn)
mongodb::parseJson
语法
mongodb::parseJson(str, keys, colnames, colTypes)
详情
解析JSON类型的数据,转换到DolphinDB的内存表并返回该内存表。
参数
- str: 需要解析的JSON格式的字符串,为string类型的vector。
- keys: 转换后内存表的列名,一一对应原 JSON 中的键,为string类型的vector。
- colnames: 结果表JSON的键,为string类型的vector。
- colTypes: 向量,表示结果表中的数据类型。
- colTypes支持BOOL, INT, FLOAT, DOUBLE, STRING以及BOOL[], INT[], FLOAT[], DOUBLE[]类型的array vector。其中支持将JSON中的int, float, double类型转换为DolphinDB INT, FLOAT, DOUBLE类型中的的任意一种。
例子
data = ['{"a": 1, "b": 2}', '{"a": 2, "b": 3}']
mongodb::parseJson(data,
`a`b,
`col1`col2,
[INT, INT] )
mongodb::getCollections
语法
mongodb::getCollections([databaseName])
参数
- databaseName: 需要查询的数据库。如果不填,则为mongodb::connect所选的database。
详情
获取指定database的所有集合的名字。
例子
conn = mongodb::connect("192.168.1.38", 27017, "", "")
mongodb::getCollections(conn, "dolphindb")
查询数据示例
query='{"dt": { "$date" : "2016-06-22T00:00:00.000Z" } }';
query='{"bcol" : false }';
query='{"open" : { "$numberInt" : "13232" } }';
query='{"vol" : { "$numberLong" : "1242434"} }';
query=' {"close" : { "$numberDouble" : "1.2199999999999999734" }';
query='{"low" : { "$gt" : { "$numberDecimal" : "0.219711" } } }';
query='{"uid" : { "$oid" : "1232430aa00000000000be0a" } }';
query=' {"sid" : { "$symbol" : "fdf" } }';
query='{"symbol" : "XRPUSDT.BNC"}';
query='{"ts" : { "$date" : { "$numberLong" : "1600166651000" } }';
query='{}';
option='{}';
con=mongodb::connect(`localhost,27017,`admin,`123456,`dolphindb);
res=mongodb::load(con,`collection1,query,option);
mongodb::close(con);
t = select * from res
支持的数据类型
整型
MongoDB类型 | 对应的DolphinDB类型 |
---|---|
int32 | INT |
int64(long) | LONG |
bool | BOOL |
DolphinDB中各类整型的最小值(例如:INT的-2,147,483,648以及LONG的-9,223,372,036,854,775,808)为NULL值。
浮点数类型
MongoDB类型 | 对应的DolphinDB类型 |
---|---|
double | DOUBLE |
decimal128 | DOUBLE |
时间类型
MongoDB类型 | 对应的DolphinDB类型 |
---|---|
date | timestamp |
字符串类型
MongoDB类型 | 对应的DolphinDB类型 |
---|---|
string | STRING |
symbol | STRING |
oid | STRING |