123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566 |
- local skynet = require "skynet"
- require "skynet.manager"
- local cjson = require "cjson"
- local mongodb_tb = require "settings".mongodb_tb
- local CMD = {}
- local db = {}
- local function init_db(cnf)
- local dbc = require "mongodb.mongodb"
- return dbc:start(cnf)
- end
- function CMD.start(cnf)
- for _, v in pairs(mongodb_tb) do
- db[v] = init_db({host = cnf.host, port = cnf.port, db_name = v})
- assert(db[v])
- end
- end
- --cname -> collection name
- function CMD.find(dbname, cname, ...)
- skynet.error("call_mongodb_slave:",dbname,cname,cjson.encode(...))
- local res = db[dbname]:find(cname, ...)
- skynet.error("call_mongodb_slave:",cjson.encode(res))
- return res
- end
- function CMD.findOne(dbname, cname, select)
- return db[dbname]:findOne(cname, select)
- end
- function CMD.aggregate(dbname, cname, operation)
- return db[dbname]:aggregate(cname, operation)
- end
- function CMD.update(dbname, cname, select, datas)
- return db[dbname]:update(cname, select, datas, true)
- end
- function CMD.updateMany(dbname, cname, select, datas)
- return db[dbname]:updateMany(cname, select, datas)
- end
- function CMD.insert(dbname, cname, data)
- return db[dbname]:insert(cname, data)
- end
- function CMD.batch_insert(dbname, cname, data)
- return db[dbname]:batch_insert(cname, data)
- end
- function CMD.del(dbname, cname, select)
- return db[dbname]:delete(cname, select)
- end
- skynet.start(function()
- skynet.dispatch("lua", function(_, _, cmd, ...)
- local f = assert(CMD[cmd], cmd .. "not found")
- skynet.retpack(f(...))
- end)
- end)
|