如何在 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

更新于: 20-Jul-2021

867 次查看

启动您的 职业生涯

通过完成课程获得认证

开始
广告