因为MongoDB支持执行JavaScript文件查询,所以newlisp就可以通过这种方式获得查询结果。
下面是我的newlisp模块:
- (context 'MONGO_JS_TOOL)
- (define (query db-name js-file)
- (set 'cmd (format "mongo localhost/%s %s" db-name js-file))
- (set 'r (exec cmd))
- (set 'r (STRING_LIST:remove r "^MongoDB.+" 1))
- (set 'r (STRING_LIST:remove r "^connecting.+" 1))
- (set 'rl '())
- (set 'line "")
- (dolist (e r)
- (set 'line (append line (replace "\t" e "")))
- (if (= "}" e)
- (begin
- (push line rl -1)
- (set 'line ""))))
- rl
- )
下面是调用命令:
- (load "mongo.lsp")
- (set 'rl (MONGO_JS_TOOL:query "kfc" "strategy.js"))
- (println rl)
执行结果是:
- ./schedule.lsp
- ("{\"_id\" : ObjectId(\"53bbf667b78d338d48d0f86f\"),\"send_time\" : \"21:47\",\"text\" : \"afdfd\"}"
- "{\"_id\" : ObjectId(\"53cb4c625f94f3ac8af92b46\"),\"send_time\" : \"06:29\",\"text\" : \"66g