如何在 Lua 编程中使用 lua-mongo 库?
Lua 提供了不同的库,可用于处理 MongoDB。最流行的框架,使我们能够在 Lua 中使用 MongoDB,是 **lua-mongo**。
**Lua-mongo** 是 MongoDB C 驱动程序的 Lua 绑定 -
- 它为 MongoDB 命令、**CRUD** 操作和 MongoDB C 驱动程序中的 GridFS 提供了 **统一** 的 API。
- 为了方便起见,从 Lua/JSON 到 BSON 的透明转换。
- 根据 Lua 数字的容量,自动在 Lua 数字和 BSON Int32、Int64 和 Double 类型之间进行转换,而不会丢失精度(当 Lua 允许时)。手动转换也可使用。
您可以使用以下命令下载 MongoDB -
luarocks install lua-mongo
MongoDB 设置
为了使以下示例按预期工作,我们需要初始数据库设置。假设条件如下所示。
- 您已安装并设置了 MongoDB,并将 /data/db 文件夹用于存储数据库。
- 您已创建了一个名为 **lua-mongo-test** 的数据库和一个名为 test 的集合。
导入 MongoDB
假设您的 Lua 实现已正确完成,我们可以使用简单的 require 语句导入 MongoDB 库。
local mongo = require 'mongo'
变量 **mongo** 将通过引用主 MongoDB 集合来提供对函数的访问。
现在我们已完成设置,让我们编写一个示例,在该示例中,我们将了解如何使用 lua-mongo 框架在 Lua 中使用不同的 MongoDB 查询。
示例
请考虑以下示例 -
local mongo = require 'mongo' local client = mongo.Client('mongodb://127.0.0.1') local collection = client:getCollection('lua-mongo-test', 'test') -- Common variables local id = mongo.ObjectID() collection:insert{_id = id, name = 'John Smith', age = 50} collection:insert{_id = id, name = 'Mukul Latiyan', age = 24} collection:insert{_id = id, name = 'Rahul', age = 32} for person in collection:find({}, {sort = {age = -1}}):iterator() do print(person.name, person.age) end
在上面的示例中,我们试图以降序对 MongoDB 集合中存在的不同条目的图像进行排序。
输出
John Smith 50 Rahul 32 Mukul Laityan 24
广告