neoxic / lua-mongo Goto Github PK
View Code? Open in Web Editor NEWMongoDB Driver for Lua
License: MIT License
MongoDB Driver for Lua
License: MIT License
build mongo-c-driver 1.15 with luarock
-rwxr-xr-x 1 root root 93680 Nov 1 11:01 mongo.so
drwxr-xr-x 2 root root 53 Mar 27 2019 socket
[root@centos01 5.3]# ldd mongo.so
linux-vdso.so.1 => (0x00007ffc6fbec000)
libmongoc-1.0.so.0 => not found
libbson-1.0.so.0 => /usr/local/lib/libbson-1.0.so.0 (0x00007f0fbcc30000)
libc.so.6 => /lib64/libc.so.6 (0x00007f0fbc86d000)
libm.so.6 => /lib64/libm.so.6 (0x00007f0fbc56b000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f0fbc34e000)
/lib64/ld-linux-x86-64.so.2 (0x00007f0fbd082000)
problem is
error : ...ect/LinuxLua/AgentServer/build/lua/5.3/include/mongo.lua:1: module 'bson' not found:
no field package.preload['bson']
no file './lua/bson.lua'
no file '/usr/local/share/lua/5.3/bson.lua'
no file '/usr/local/share/lua/5.3/bson/init.lua'
no file '/usr/local/lib/lua/5.3/bson.lua'
no file '/usr/local/lib/lua/5.3/bson/init.lua'
no file './bson.lua'
no file './bson/init.luabson.lua'
no file '/data/project/LinuxLua/AgentServer/build/lua/5.3/include/bson.lua'
no file '/usr/local/lib/lua/5.3/bson.so'
no file '/usr/local/lib/lua/5.3/loadall.so'
no file './bson.sobson.so'
no file '/data/project/LinuxLua/AgentServer/build/lua/5.3/lib/bson.so'
stack[0] -> line -1 : unknown[[C] : line -1]
stack[1] -> line -1 : require()[[C] : line -1]
stack[2] -> line 1 : unknown[...ect/LinuxLua/AgentServer/build/lua/5.3/include/mongo.lua : line 0]
stack[3] -> line -1 : require()[[C] : line -1]
stack[4] -> line 78 : unknown[./lua/testmongo.lua : line 0]
stack[5] -> line -1 : require()[[C] : line -1]
stack[6] -> line 146 : unknown[lua/ManagerTest.lua : line 0]
I build and use in window is ok ,but linux is wrong!! why??
filename diffance?
Using:
lua 5.3.6
luarocks 3.9.1
gcc 12.2.1
windows 10 64
Installing lua-mongo using luarocks
Installing https://luarocks.org/lua-mongo-1.2.3-2.src.rock
lua-mongo 1.2.3-2 depends on lua >= 5.1 (5.3-1 provided by VM)
gcc -O2 -c -o src/bson.o -IC:\lua\include src/bson.c -IC:\Program Files (x86)\mongo-c-driver/include/libmongoc-1.0 -IC:\Program Files (x86)\mongo-c-driver/include/libbson-1.0
gcc -O2 -c -o src/bsontype.o -IC:\lua\include src/bsontype.c -IC:\Program Files (x86)\mongo-c-driver/include/libmongoc-1.0 -IC:\Program Files (x86)\mongo-c-driver/include/libbson-1.0
gcc -O2 -c -o src/bulkoperation.o -IC:\lua\include src/bulkoperation.c -IC:\Program Files (x86)\mongo-c-driver/include/libmongoc-1.0 -IC:\Program Files (x86)\mongo-c-driver/include/libbson-1.0
gcc -O2 -c -o src/client.o -IC:\lua\include src/client.c -IC:\Program Files (x86)\mongo-c-driver/include/libmongoc-1.0 -IC:\Program Files (x86)\mongo-c-driver/include/libbson-1.0
gcc -O2 -c -o src/collection.o -IC:\lua\include src/collection.c -IC:\Program Files (x86)\mongo-c-driver/include/libmongoc-1.0 -IC:\Program Files (x86)\mongo-c-driver/include/libbson-1.0
gcc -O2 -c -o src/cursor.o -IC:\lua\include src/cursor.c -IC:\Program Files (x86)\mongo-c-driver/include/libmongoc-1.0 -IC:\Program Files (x86)\mongo-c-driver/include/libbson-1.0
gcc -O2 -c -o src/database.o -IC:\lua\include src/database.c -IC:\Program Files (x86)\mongo-c-driver/include/libmongoc-1.0 -IC:\Program Files (x86)\mongo-c-driver/include/libbson-1.0
gcc -O2 -c -o src/flags.o -IC:\lua\include src/flags.c -IC:\Program Files (x86)\mongo-c-driver/include/libmongoc-1.0 -IC:\Program Files (x86)\mongo-c-driver/include/libbson-1.0
gcc -O2 -c -o src/gridfs.o -IC:\lua\include src/gridfs.c -IC:\Program Files (x86)\mongo-c-driver/include/libmongoc-1.0 -IC:\Program Files (x86)\mongo-c-driver/include/libbson-1.0
gcc -O2 -c -o src/gridfsfile.o -IC:\lua\include src/gridfsfile.c -IC:\Program Files (x86)\mongo-c-driver/include/libmongoc-1.0 -IC:\Program Files (x86)\mongo-c-driver/include/libbson-1.0
gcc -O2 -c -o src/gridfsfilelist.o -IC:\lua\include src/gridfsfilelist.c -IC:\Program Files (x86)\mongo-c-driver/include/libmongoc-1.0 -IC:\Program Files (x86)\mongo-c-driver/include/libbson-1.0
gcc -O2 -c -o src/main.o -IC:\lua\include src/main.c -IC:\Program Files (x86)\mongo-c-driver/include/libmongoc-1.0 -IC:\Program Files (x86)\mongo-c-driver/include/libbson-1.0
gcc -O2 -c -o src/objectid.o -IC:\lua\include src/objectid.c -IC:\Program Files (x86)\mongo-c-driver/include/libmongoc-1.0 -IC:\Program Files (x86)\mongo-c-driver/include/libbson-1.0
gcc -O2 -c -o src/readprefs.o -IC:\lua\include src/readprefs.c -IC:\Program Files (x86)\mongo-c-driver/include/libmongoc-1.0 -IC:\Program Files (x86)\mongo-c-driver/include/libbson-1.0
gcc -O2 -c -o src/util.o -IC:\lua\include src/util.c -IC:\Program Files (x86)\mongo-c-driver/include/libmongoc-1.0 -IC:\Program Files (x86)\mongo-c-driver/include/libbson-1.0
gcc -shared -o mongo.dll src/bson.o src/bsontype.o src/bulkoperation.o src/client.o src/collection.o src/cursor.o src/database.o src/flags.o src/gridfs.o src/gridfsfile.o src/gridfsfilelist.o src/main.o src/objectid.o src/readprefs.o src/util.o -LC:\Program Files (x86)\mongo-c-driver/lib -LC:\Program Files (x86)\mongo-c-driver/lib -lmongoc-1.0 -lbson-1.0 C:\lua\lib/lua53.dll -lm
lua-mongo 1.2.3-2 is now installed in C:\Users\useradmin\AppData\Roaming/luarocks (license: MIT)
Seems to work great. No errors in installation and a mongo.dll
file is generated.
When opening lua:
Lua 5.3.6 Copyright (C) 1994-2020 Lua.org, PUC-Rio
> local m = require('mongo')
error loading module 'mongo' from file 'C:/Users/useradmin/AppData/Roaming/luarocks/lib/lua/5.3/mongo.dll':
The specified module could not be found.
stack traceback:
[C]: in ?
[C]: in function 'require'
stdin:1: in main chunk
[C]: in ?
double checking path loader
> package.cpath
C:/lua/?.dll;C:/lua/../lib/lua/5.3/?.dll;C:/lua/loadall.dll;./?.dll;C:/lua/?53.dll;./?53.dll;C:/Users/useradmin/AppData/Roaming/luarocks/lib/lua/5.3/?.dll
The file is there.
sspivey@saspivey98:/mnt/c/Users/useradmin/appdata/roaming/luarocks/lib/lua/5.3$ ll | grep mongo
-rwxrwxrwx 1 sspivey sspivey 197698 Oct 12 14:38 mongo.dll*
I'm out of leads trying to figure out what is wrong here...
Installing https://luarocks.org/lua-mongo-1.2.1-1.src.rock
Error: Could not find header file for LIBBSON
No file libbson-1.0/bson/bson.h in /usr/local/include
No file libbson-1.0/bson/bson.h in /usr/include
You may have to install LIBBSON in your system and/or pass LIBBSON_DIR or LIBBSON_INCDIR to the luarocks command.
Example: luarocks install lua-mongo LIBBSON_DIR=/usr/local
i try.
in mongo db
{"start_time" : ISODate("2020-09-18T17:57:20Z"),"exp_time" : ISODate("2021-09-07T17:57:20Z")}
how to find or aggregation time with gte or lte
i use query in mongo shell it work .
db.collection.find({ "start_time" : { "$lte": ISODate("2020-09-18T17:57:20Z")} })
how to find isodate in your lib
thank you.
Is there a way to find out if and/or why the mongo client connection failed? I see that when I do a mongo.Client() call, I get a return value even if the connection to the database failed. Even if I put it a incorrect URI, I still get a client connection value returned, but it does not work and at the same time there are no errors.
local uri = 'mongodb://1274.8398.433.344' -- or correct but inaccessible database URI
local client = mongo.Client()
local collection = client:getCollection('mail', 'data')
collection:insert{
key = value
}
This will run fine with no errors even though uri
is not correct or if for some reason connection to the URI fails. Is there any way to get an error back?
error during loading module:
[error] 12528#12528: *4392626 lua entry thread aborted: runtime error: error loading module 'mongo' from file '/usr/local/openresty/lualib/mongo.so':
/usr/local/openresty/lualib/mongo.so: undefined symbol: mongoc_collection_replace_one
The following
mongo.BSON {a={__array, 1, 2, 3}}
segfaults, as well as the syntax in title. At least, an error, rather than a segfault, shall be issued by Lua.
mac os 10.13.3
mongo-c-driver: stable 1.9.3
pachin:/Users/pachin/Work/SRV/lua-mongo>cmake -D USE_LUA_VERSION=5.1 .
-- Checking for one of the modules 'lua-5.1;lua5.1;lua51'
-- Configuring done
-- Generating done
-- Build files have been written to: /Users/pachin/Work/SRV/lua-mongo
pachin:/Users/pachin/Work/SRV/lua-mongo>make
Scanning dependencies of target mongo
[ 6%] Building C object CMakeFiles/mongo.dir/src/bson.c.o
[ 13%] Building C object CMakeFiles/mongo.dir/src/bsontype.c.o
[ 20%] Building C object CMakeFiles/mongo.dir/src/bulkoperation.c.o
[ 26%] Building C object CMakeFiles/mongo.dir/src/client.c.o
[ 33%] Building C object CMakeFiles/mongo.dir/src/collection.c.o
[ 40%] Building C object CMakeFiles/mongo.dir/src/cursor.c.o
[ 46%] Building C object CMakeFiles/mongo.dir/src/database.c.o
[ 53%] Building C object CMakeFiles/mongo.dir/src/flags.c.o
[ 60%] Building C object CMakeFiles/mongo.dir/src/gridfs.c.o
[ 66%] Building C object CMakeFiles/mongo.dir/src/gridfsfile.c.o
[ 73%] Building C object CMakeFiles/mongo.dir/src/gridfsfilelist.c.o
[ 80%] Building C object CMakeFiles/mongo.dir/src/main.c.o
[ 86%] Building C object CMakeFiles/mongo.dir/src/objectid.c.o
[ 93%] Building C object CMakeFiles/mongo.dir/src/util.c.o
[100%] Linking C shared library mongo.so
[100%] Built target mongo
pachin:/Users/pachin/Work/SRV/lua-mongo>make test
Running tests...
Test project /Users/pachin/Work/SRV/lua-mongo
Start 1: test-bson.lua
1/3 Test #1: test-bson.lua ....................***Exception: SegFault 0.08 sec
Start 2: test-gridfs.lua
2/3 Test #2: test-gridfs.lua ..................***Exception: SegFault 1.21 sec
Start 3: test-mongo.lua
3/3 Test #3: test-mongo.lua ...................***Exception: SegFault 0.11 sec
0% tests passed, 3 tests failed out of 3
Total Test time (real) = 1.43 sec
The following tests FAILED:
1 - test-bson.lua (SEGFAULT)
2 - test-gridfs.lua (SEGFAULT)
3 - test-mongo.lua (SEGFAULT)
Errors while running CTest
make: *** [test] Error 8
Hello,
When I insert an Integer into mongoDB it's displayed as Int32.
Could someone please tell me how to add the field startDate as Int64 ?
local myCollection = client:getCollection('testDB', 'conferences')
local conference = {
name = "test",
numberOfParticipants = 0,
startDate = os.time()
};
myCollection:insert(json.encode(conference))
Thanks for your help!
Could this library support Connection Pooling?
http://mongoc.org/libmongoc/current/connection-pooling.html#connection-pooling
http://mongoc.org/libmongoc/current/mongoc_client_pool_t.html
mongoc_client_pool_t
mongoc_client_pool_pop
mongoc_client_pool_push
mongoc_client_pool_set_error_api
The following method may be also needed for gc?
mongoc_client_pool_destroy (pool);
mongoc_uri_destroy (uri);
Here is the other mongoc binding driver in ffi, for your reference.
https://github.com/lloydzhou/luajit-mongo/blob/master/mongo.lua
Thanks.
out put lua_mongo_1_2_1_1-mongo.dll
why? and can not loading!!!!
We try to use the notation $ to select all the array value in the projection but this notation seems to be not implemented !
the string is :
str=string.format([[
[
{ "$match":
{
"Code_IG":"6546544",
"POS.freq":"474"
}
} ,
{ "$projecti":
{
"clientID":1,
"POS.$":1,
"_idques":0
}
}
]
]])query=mongo.BSON(str)
loop=collection:aggregate(query):value();
if loop then
OP_Display_mongo_list("document",loop);
End
```
Title is pretty much self-explanatory; the line local mongo = require 'mongo'
will result in a crash saying the following :
lua: error loading module 'mongo' from file '/usr/local/lib/lua/5.2/mongo.so':
/usr/local/lib/lua/5.2/mongo.so: undefined symbol: lua_tointeger
stack traceback:
[C]: in ?
[C]: in function 'require'
test/test-mongo.lua:1: in main chunk
[C]: in ?
It does that on the test files given in the test/
folder, as well as a dummy lua script with only the faulty line in it.
I'm running Ubuntu 19.10 and I'm using Lua 5.2. I compiled the driver with CMake.
Note : the compiler gave me some trouble (I had to specify that I was using Lua 5.2, and it said : -- Using Lua '5.2', version 5.1.5
), not sure if it's related.
Thanks in advance!
When I execute 'local mongo = require("mongo")'. The nginx logs show as blow.
2018/08/17 23:37:54 [notice] 2603#2603: signal 17 (SIGCHLD) received from 2604
2018/08/17 23:37:54 [notice] 2603#2603: worker process 2604 exited with code 0
2018/08/17 23:37:54 [notice] 2603#2603: exit
I have a clean centos 7.3. install newest openresty. Use the newest cmake and mongo-c-driver to build the mongo.so.
Hi,
libmongoc-1.0-0
1.9.3+dfsg-2
lua-mongo
1.0.0-1 (installed) - /usr/local/lib/luarocks/rocks
Got this error when trying to load the driver
local mongo = require 'mongo'
lua: error loading module 'mongo' from file '/usr/local/lib/lua/5.1/mongo.so':
/usr/local/lib/lua/5.1/mongo.so: undefined symbol: mongoc_database_drop_with_opts
by the way does it support replica set?
Thanks,
Arsen
Hey,
I am trying to use the lua-mongo, although getting the following error:
LUA ERROR: error loading module 'mongo' from file '/usr/local/lib/lua/5.1/mongo.so': /usr/local/lib/lua/5.1/mongo.so: wrong ELF class: ELFCLASS64
As far as I googled it, it seems that my version is 64 bit, but I am trying to run it on a 32 bit program, right?
At least the program where I am using (CS2D) is 32 Bit (and LUA 5.1)
I tried using your lib. I want to find the start date range to the end date. I try using find loop method. It doesn't work. I have an example. Which I have tried
example
local query_max = mongo.BSON('{ "createdDtm" : { "$gt" : 1583020800000 , "$lt" : 1585609259000 } }')
for data in collection:find(query_max) then
not work print
end
thank you
Why does insertone not return reply?
I want to win_ id
Sorry, I can't speak English. This is from machine translation.
trying to build lua-mongo. i did download mongo-c-driver and make folders in c:\external\include\libbson-1.0 and c:\external\includelibmongoc-1.0. first i getting error that there is no bson-config.h
C:\Program Files (x86)\Microsoft Visual Studio\2019\Community>luarocks install lua-mongo
Installing https://luarocks.org/lua-mongo-1.2.2-1.src.rock
lua-mongo 1.2.2-1 depends on lua >= 5.1 (5.3-1 provided by VM)
cl /nologo /MD /O2 -c -Fosrc/bson.obj -IC:\luarocks/include src/bson.c -Ic:/external/include/libmongoc-1.0 -Ic:/external/include/libbson-1.0
bson.c
c:\external\include\libbson-1.0\bson\bson-compat.h(34): fatal error C1083: Cannot open include file: 'bson-config.h': No such file or directory
Error: Build error: Failed compiling object src/bson.obj
then i tried to rename bson-config.h.in TO bson-config.h in libbson folder and then i getting this error
C:\Program Files (x86)\Microsoft Visual Studio\2019\Community>luarocks install lua-mongo
Installing https://luarocks.org/lua-mongo-1.2.2-1.src.rock
lua-mongo 1.2.2-1 depends on lua >= 5.1 (5.3-1 provided by VM)
cl /nologo /MD /O2 -c -Fosrc/bson.obj -IC:\luarocks/include src/bson.c -Ic:/external/include/libmongoc-1.0 -Ic:/external/include/libbson-1.0
bson.c
c:\external\include\libbson-1.0\bson\bson-compat.h(34): fatal error C1083: Cannot open include file: 'bson-config.h': No such file or directory
Error: Build error: Failed compiling object src/bson.obj
C:\Program Files (x86)\Microsoft Visual Studio\2019\Community>luarocks install lua-mongo
Installing https://luarocks.org/lua-mongo-1.2.2-1.src.rock
lua-mongo 1.2.2-1 depends on lua >= 5.1 (5.3-1 provided by VM)
cl /nologo /MD /O2 -c -Fosrc/bson.obj -IC:\luarocks/include src/bson.c -Ic:/external/include/libmongoc-1.0 -Ic:/external/include/libbson-1.0
bson.c
c:\external\include\libbson-1.0\bson\bson-config.h(34): error C2018: unknown character '0x40'
c:\external\include\libbson-1.0\bson\bson-config.h(52): error C2018: unknown character '0x40'
c:\external\include\libbson-1.0\bson\bson-config.h(60): error C2018: unknown character '0x40'
c:\external\include\libbson-1.0\bson\bson-config.h(69): error C2018: unknown character '0x40'
c:\external\include\libbson-1.0\bson\bson-config.h(78): error C2018: unknown character '0x40'
c:\external\include\libbson-1.0\bson\bson-config.h(87): error C2018: unknown character '0x40'
c:\external\include\libbson-1.0\bson\bson-config.h(96): error C2018: unknown character '0x40'
c:\external\include\libbson-1.0\bson\bson-config.h(105): error C2018: unknown character '0x40'
c:\external\include\libbson-1.0\bson\bson-config.h(114): error C2018: unknown character '0x40'
c:\external\include\libbson-1.0\bson\bson-config.h(123): error C2018: unknown character '0x40'
c:\external\include\libbson-1.0\bson\bson-config.h(132): error C2018: unknown character '0x40'
c:\external\include\libbson-1.0\bson\bson-config.h(141): error C2018: unknown character '0x40'
c:\external\include\libbson-1.0\bson\bson-config.h(146): error C2018: unknown character '0x40'
c:\external\include\libbson-1.0\bson\bson-config.h(151): error C2018: unknown character '0x40'
c:\external\include\libbson-1.0\bson\bson-macros.h(33): error C2018: unknown character '0x40'
c:\external\include\libbson-1.0\bson\bson-macros.h(35): error C2018: unknown character '0x40'
c:\external\include\libbson-1.0\bson\bson-macros.h(38): fatal error C1189: #error: "Unknown operating system."
Error: Build error: Failed compiling object src/bson.obj
so what should i do to build lua-mongo??
Hey,
I've been looking at the code you implemented and, first of all, thanks for all the work.
Now, I have a task at hand where I need to use a transaction to create multiple collections and commit or abort depending on the jobs' success. This should be available on the latest mongo version (4.4), so I went searching for the class in your code where the notion of transaction or session was implemented. Unfortunately, I didn't find them.
Am I missing something? Or, if not, are you planning on implementing these notions soon?
Here's the documentation I've been looking at:
Thanks in advance.
If I use this package stand alone under lua or luajit everthing works fine.
If I use code under nginx
content_by_lua_block {
local mongo = require 'mongo'
...
}
the it gives an error
2020/10/09 08:06:23 [error] 1421#0: *51 lua entry thread aborted: runtime error: content_by_lua(nginx-kong.conf:283):24: No suitable servers found (serverSelectionTryOnce
set): [TLS handshake failed: error:1416F086:SSL routines:tls_process_server_certificate:certificate verify failed calling ismaster on 'cluster0-shard-00-00.6h6bl.mongodb.net:27017'] [TLS handshake failed: error:1416F086:SSL routines:tls_process_server_certificate:certificate verify failed calling ismaster on 'cluster0-shard-00-01.6h6bl.mongodb.net:27017'] [TLS handshake failed: error:1416F086:SSL routines:tls_process_server_certificate:certificate
No error if SSL is not used. Plain mongodb://foo works fine.
how to limit guy. thank you.
#!/usr/bin/env lua
local mongo = require 'mongo'
local client = mongo.Client('mongodb://127.0.0.1')
local collection = client:getCollection('db', 'test_col')
for person in collection:find({},{sort = {age = -1}}):iterator() do
print(person.name)
end
Hello
It looks like it is not possible to create bson document with number indexed arrays:
lua: mongotest.lua:5: bad argument #1 to 'BSON' (["path"] => string index expected, got number)
stack traceback:
[C]: in function 'BSON'
mongotest.lua:5: in main chunk
[C]: ?
test:
local mongo = require 'mongo'
--works
mongo.BSON{ path = { ["1"]="a", ["2"]="b", ["3"]="c", }}
--fails
mongo.BSON{ path = { "a", "b", "c" } }
I searched the docs and not found the auth function. I also try the connect string with username and password, but report error. How can I do?
# cat /etc/redhat-release
CentOS Linux release 7.8.2003 (Core)
# lua
Lua 5.1.4 Copyright (C) 1994-2008 Lua.org, PUC-Rio
>
# luarocks install lua-mongo LIBBSON_INCDIR=/usr/include/ LIBMONGOC_INCDIR=/usr/include/
Warning: falling back to curl - install luasec to get native HTTPS support
Installing https://luarocks.org/lua-mongo-1.2.2-1.src.rock...
Using https://luarocks.org/lua-mongo-1.2.2-1.src.rock... switching to 'build' mode
gcc -O2 -fPIC -I/usr/include -c src/bson.c -o src/bson.o -I/usr/include//libmongoc-1.0 -I/usr/include//libbson-1.0
src/bson.c: In function ‘initBSON’:
src/bson.c:144:2: warning: passing argument 1 of ‘memcpy’ makes pointer from integer without a cast [enabled by default]
memcpy(bson_reserve_buffer(bson, len), str, len);
^
In file included from /usr/include//libbson-1.0/bson-compat.h:80:0,
from /usr/include//libbson-1.0/bson.h:23,
from /usr/include//libmongoc-1.0/mongoc/mongoc.h:22,
from src/common.h:26,
from src/bson.c:23:
/usr/include/string.h:42:14: note: expected ‘void * __restrict__’ but argument is of type ‘int’
extern void *memcpy (void *__restrict __dest, const void *__restrict __src,
^
src/bson.c: In function ‘appendBSONType’:
src/bson.c:163:8: error: ‘BSON_TYPE_DECIMAL128’ undeclared (first use in this function)
case BSON_TYPE_DECIMAL128: {
^
src/bson.c:163:8: note: each undeclared identifier is reported only once for each function it appears in
src/bson.c:165:4: error: unknown type name ‘bson_decimal128_t’
bson_decimal128_t dec;
Why I can't install lua-mongo?
I would like to create an index for my database but the syntax 👍 :ensureIndex(.. seems to be not implemented.
When I try to:
local mongo = require "mongo"
I get an error:
[error] 17939#17939: *764940 lua entry thread aborted: runtime error: error loading module 'mongo' from file '/usr/local/lib/lua/5.1/mongo.so':
/usr/local/lib/lua/5.1/mongo.so: undefined symbol: mongoc_collection_count_documents
How to fix this?
# cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=18.04
DISTRIB_CODENAME=bionic
DISTRIB_DESCRIPTION="Ubuntu 18.04.3 LTS"
In file collections.c at line 125:
int i, n = lua_gettop(L) - 1;
bson_t const *documents[n];
the [n] causes Error C2057 expected constant expression lua-mongo C:\work\lua-mongo\src\collection.c 125
with Visual Studio 2019. msvc does not support VLA, which is C99.
Hi,
How to do something like:
db.log_events.insert( {
"createdAt": new Date(),
"logEvent": 2,
"logMessage": "Success!"
} )
Hi neoxic. I ahve problem.Iwant query this .
mongo shell i want.
db.test.find({"$and":[{"num":{"$exists":true}},{"num":{"$nin":[0]}}]}).sort({num:1}).limit(1)
i try query in
local query_max = mongo.BSON('{"$and":[{"num":{"$exists":true}},{"num":{"$nin":[0]}}]},{"limit":5}')
for select_data in collection:find(query_max):iterator() do
print(select_data.num)
end
respon = {}
help pls neoxic.I think syntax me error.but i don't know guy.
thank you.
How to use MongoDB's projection to select some fields? I only saw query and options findOne(query,options)
Please note that lua-mongo is merely a binding to Mongo C Driver. It neither adds nor subtracts anything within the supported API.
Before reporting an issue, please make sure the problem is with lua-mongo itself rather than with MongoDB syntax or the Mongo C Driver API by checking the following links:
Issues unrelated to lua-mongo will be closed without a warning.
I'm getting an error when I try to install lua-mongo with luarocks.
Installing https://luarocks.org/lua-mongo-1.2.2-1.src.rock gcc -O2 -fPIC -I/usr/include/lua5.2 -c src/bson.c -o src/bson.o -I/usr/local/include/libmongoc-1.0 -I/usr/local/include/libbson-1.0 In file included from src/bson.c:23: src/common.h:25:10: fatal error: lauxlib.h: No such file or directory #include <lauxlib.h> ^~~~~~~~~~~ compilation terminated.
I installed the mongo-c driver version 1.17.3 following these steps:
$ wget https://github.com/mongodb/mongo-c-driver/releases/download/1.17.3/mongo-c-driver-1.17.3.tar.gz $ tar xzf mongo-c-driver-1.17.3.tar.gz $ cd mongo-c-driver-1.17.3 $ mkdir cmake-build $ cd cmake-build $ cmake -DENABLE_AUTOMATIC_INIT_AND_CLEANUP=OFF .. $ make $ sudo make install
I tried luarocks + vcpkg but I can't get it to work.
This is how I call it:
luarocks install lua-mongo LIBBSON_INCDIR=C:\g\vcpkg\packages\libbson_x86-windows LIBMONGOC_INCDIR=C:\g\vcpkg\packages\mongo-c-driver_x86-windows
output below
src/collection.c(125): error C2057: expected constant expression
src/collection.c(125): error C2466: cannot allocate an array of constant size 0
src/collection.c(125): error C2133: 'documents': unknown size
Error: Build error: Failed compiling object src/collection.obj
Make sure that you actually have database TestDatabase
with collection TestCollection
which contains 101+ documents:
local mongo = require 'mongo'
local client = mongo.Client('mongodb://127.0.0.1')
local cmd = {find = "TestCollection"}
local cursor = client:command("TestDatabase", cmd)
return type(cursor)
The process will abort due to failed assertion BSON_ASSERT (server_id);
inside mongoc_cluster_stream_for_server()
in mongoc-cluster.c
: mongoc_cluster_stream_for_server(): precondition failed: server_id
This seems to happen only if the data of firstBatch isn't fully consumed:
local count = 0
for _ in cursor:iterator() do
count = count + 1
if count == 102 then break end -- any value smaller than 102 will abort
end
return count
lua-mongo: v1.2.0
mongo-c-driver: v1.15.1
I'm creating a database of students. Now I want to find the list of similar names in students
I am unable to find the syntax that will give me the serverStatus and so the Date of the server.
I have tried something like
ret = client:command("myDb",' { "serverStatus' : 1 } ' )
but ret is not a document
In the database methods documentation there is no database:serverStatus() as I would expect
Thanks a lot for any help
code:
local client = mongo.Client(...)
local coll = client:getCollection("team", "mytest")
coll:insert('{ "name" : "Bobby", "age" : 23 }')
The code running environment is OpenResty .
error:
*** Error in `nginx: worker process': free(): invalid next size (fast): 0x0000000002135360 ***
2021/11/14 20:38:06 [alert] 91383#91383: worker process 51751 exited on signal 11
Can I create a TTL index with a lua-mango package?
If it is possible can you please me how in sort?
This is one of the excellent tools that I found for lua mongo connectivity.
I really appreciate any help you can provide.
i have more document more than 1000000 . cannot use allowDiskUse.
for data_output in collection2:aggregate('[{"$group" : { "_id": "$num", "count": { "$sum": 1 } } },{"$match": {"_id" :{ "$ne" : null } , "count" : {"$gt": 1} } }, {"$project": {"num" : "$_id", "_id" : "$count"} },{"$sort":{"_id":-1}}],{"allowDiskUse": true}'):iterator() do
print(data_output)
return 0
end
error = Each element of the 'pipeline' array must be an object
thank you neoxic.
I had to make some minor changes to get it to compile on a c89 compiler. See attached file
diff.txt
.
I also had to change the name of bson.c since the same file name is in the Mongo C driver: mongoc.org
Please note that lua-mongo is merely a binding to Mongo C Driver. It neither adds nor subtracts anything within the supported API.
Before reporting an issue, please make sure the problem is with lua-mongo itself rather than with MongoDB syntax or the Mongo C Driver API by checking the following links:
Issues unrelated to lua-mongo will be closed without a warning.
Hi all,
Is there a chance to have got the $sort operator for query option or as a cursor method?
For my understanding, your project doesn't support server side sorting. Does it?
Thank you.
R.
I downloaded the mongo-c-driver 1.16 binaries and built it using mingw64 MSYS Makefiles and gcc 12.2.1 on windows 10, 64-bit.
run this command in luarocks 3.3.1:
luarocks install lua-mongo LIBBSON_DIR=C:\lua LIBMONGOC_DIR=C:\lua
this what is returned:
Installing https://luarocks.org/lua-mongo-1.2.3-1.src.rock
lua-mongo 1.2.3-1 depends on lua >= 5.1 (5.3-1 provided by VM)
gcc -O2 -c -o src/bson.o -IC:\lua\include src/bson.c -IC:\lua/include/libmongoc-1.0 -IC:\lua/include/libbson-1.0
gcc -O2 -c -o src/bsontype.o -IC:\lua\include src/bsontype.c -IC:\lua/include/libmongoc-1.0 -IC:\lua/include/libbson-1.0
gcc -O2 -c -o src/bulkoperation.o -IC:\lua\include src/bulkoperation.c -IC:\lua/include/libmongoc-1.0 -IC:\lua/include/libbson-1.0
gcc -O2 -c -o src/client.o -IC:\lua\include src/client.c -IC:\lua/include/libmongoc-1.0 -IC:\lua/include/libbson-1.0
gcc -O2 -c -o src/collection.o -IC:\lua\include src/collection.c -IC:\lua/include/libmongoc-1.0 -IC:\lua/include/libbson-1.0
gcc -O2 -c -o src/cursor.o -IC:\lua\include src/cursor.c -IC:\lua/include/libmongoc-1.0 -IC:\lua/include/libbson-1.0
gcc -O2 -c -o src/database.o -IC:\lua\include src/database.c -IC:\lua/include/libmongoc-1.0 -IC:\lua/include/libbson-1.0
gcc -O2 -c -o src/flags.o -IC:\lua\include src/flags.c -IC:\lua/include/libmongoc-1.0 -IC:\lua/include/libbson-1.0
gcc -O2 -c -o src/gridfs.o -IC:\lua\include src/gridfs.c -IC:\lua/include/libmongoc-1.0 -IC:\lua/include/libbson-1.0
gcc -O2 -c -o src/gridfsfile.o -IC:\lua\include src/gridfsfile.c -IC:\lua/include/libmongoc-1.0 -IC:\lua/include/libbson-1.0
gcc -O2 -c -o src/gridfsfilelist.o -IC:\lua\include src/gridfsfilelist.c -IC:\lua/include/libmongoc-1.0 -IC:\lua/include/libbson-1.0
gcc -O2 -c -o src/main.o -IC:\lua\include src/main.c -IC:\lua/include/libmongoc-1.0 -IC:\lua/include/libbson-1.0
gcc -O2 -c -o src/objectid.o -IC:\lua\include src/objectid.c -IC:\lua/include/libmongoc-1.0 -IC:\lua/include/libbson-1.0
gcc -O2 -c -o src/readprefs.o -IC:\lua\include src/readprefs.c -IC:\lua/include/libmongoc-1.0 -IC:\lua/include/libbson-1.0
gcc -O2 -c -o src/util.o -IC:\lua\include src/util.c -IC:\lua/include/libmongoc-1.0 -IC:\lua/include/libbson-1.0
gcc -shared -o mongo.dll src/bson.o src/bsontype.o src/bulkoperation.o src/client.o src/collection.o src/cursor.o src/database.o src/flags.o src/gridfs.o src/gridfsfile.o src/gridfsfilelist.o src/main.o src/objectid.o src/readprefs.o src/util.o -LC:\lua -LC:\lua -lmongoc-1.0 -lbson-1.0 C:\lua\lib/lua53.dll -lm
C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/12.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: cannot find -lmongoc-1.0: No such file or directory
C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/12.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: cannot find -lbson-1.0: No such file or directory
collect2.exe: error: ld returned 1 exit status
Error: Build error: Failed compiling module mongo.dll
I genuinely don't know what -lmongoc-1.0 and -lbson-1.0 dependencies are referencing.
Sorry if this is not the right place, I realize this is more a luarocks question.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.