Giter VIP home page Giter VIP logo

luamongo's Introduction

A Lua driver for mongodb

Wiki Documentation

Support

Submit issues to the moai github site.

There is a Google Groups mailing list.

Example

local mongo = require('mongo')

-- Create a connection object
local db = assert(mongo.Connection.New())

-- connect to the server on localhost
assert(db:connect('localhost'))

-- insert a value into the namespace 'test.values'
assert(db:insert('test.values', {a = 10, b = 'str1'}))

-- the same using a JSON string
assert(db:insert('test.values', "{'a': 20, 'b': 'str2'}"))

-- insert a multiple values into the namespace 'test.values'
assert(db:insert_batch('test.values', {{a = 10, b = 'str1'}, {c = 11, d = 'str2'}}))

-- print the number of rows in the namespace 'test.values'
print(db:count('test.values'))

-- query all the values in the namespace 'test.values'
local q = assert(db:query('test.values', {}))

-- loop through the result set
for result in q:results() do
    print(result.a)
    print(result.b)
end

How It Works

luamongo is a Lua library that wraps the mongodb C++ API.

The current implementation does not give you raw access to the BSON objects. BSON objects are passed to the API using a Lua table or a JSON string representation. Every returned BSON document is fully marshalled to a Lua table.

Installing

luarocks can be used to install luamongo last SCM version:

luarocks install "https://raw.githubusercontent.com/moai/luamongo/master/rockspec/luamongo-scm-0.rockspec"

or install any other of the versions available at rockspec directory.

For modern Linux systems, you will need to update your luarocks configuration file, usually located at /usr/local/etc/luarocks/config.lua, adding the following Lua table:

external_deps_dirs = {
  {
    prefix='/usr/',
    include='include',
    lib='lib',
  },
  {
    prefix='/usr/',
    include='include',
    lib='lib/i386-linux-gnu',
  },
  {
    prefix='/usr/',
    include='include',
    lib='lib/x86_64-linux-gnu',
  },
  {
    prefix='/usr/local',
  },
}

luamongo's People

Contributors

pakozm avatar mtowers avatar mwild1 avatar neoxic avatar mabako avatar neomantra avatar terminar avatar ctembreull avatar lywaterman avatar

Watchers

 avatar

Forkers

arnold8

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.