10 分钟用 Lua 玩转 MongoDB

Posted by nepaul on 2017-07-30

目的

快速搭建 Lua 开发环境,并用 Lua 操作 MongoDB。

开发环境:Ubuntu 16.04.2 LTS (GNU/Linux 4.4.0-79-generic x86_64)

Lua:一种轻量、高效、可嵌入的编程语言,长用于游戏开发(比如 魔兽、剑网三等)

LuaRocks:目前比较常用的 Lua 包管理工具

MongoDB:性能优异、易于存取的文档数据库

##环境的搭建

主要分为三步:Lua、LuaRocks、MongoDB

Lua

官网资料:Getting started

1
2
3
4
5
6
7
8
$ curl -R -O http://www.lua.org/ftp/lua-5.3.4.tar.gz
$ tar zxf lua-5.3.4.tar.gz
$ cd lua-5.3.4
$ make macosx test #(linux 环境:make linux test)
$ make macosx

# 测试是否安装成功
$ lua -v # 正确安装会输出:"Lua 5.3.4 Copyright (C) 1994-2017 Lua.org, PUC-Rio"

LuaRocks

前提:正确安装 Lua

官网资料

1
2
3
4
5
6
7
8
$ wget https://luarocks.org/releases/luarocks-2.4.1.tar.gz
$ tar zxpf luarocks-2.4.1.tar.gz
$ cd luarocks-2.4.1
$ ./configure; sudo make bootstrap
$ sudo luarocks install luasocket
$ lua
Lua 5.3.3 Copyright (C) 1994-2016 Lua.org, PUC-Rio
> require "socket"

MongoDB

官网资料

1
2
3
4
5
$ brew update
$ brew install mongodb

# 启动 Mongo
$ mongod

用 Lua 操作 MongoDB

安装 Lua Mongo Driver

lua-mongo:官方详细资料

1
2
3
4
# mac 上的安装方式如下,其他平台请参考官方资料
$ brew install mongo-c-driver # 一定要先安装,否则安装 lua-mongo 会报错
$ sudo luarocks install lua-mongo

代码

如下代码主要是 连接 mongo,并且插入一条数据,查询相应数据

更详细的例子可参考官方资料,以及测试目录下的例子

1
2
3
4
5
6
7
8
9
10
local mongo = require 'mongo'
local client = mongo.Client 'mongodb://127.0.0.1'
local collection = client:getCollection('lua-mongo-test', 'test')

local id = mongo.ObjectID()
collection:insert { _id = id, name = 'John Smith', age = 50 }
print(collection:count({}, {}))

local query1 = mongo.BSON { _id = id }
print(collection:findOne(query1))

Comments: