Welcome! Log In Create A New Profile

Advanced

lua-resty-mongol - table insertion

Posted by Pierre 
Pierre
lua-resty-mongol - table insertion
May 22, 2012 01:00PM
Hi list,

I'm currently moving into lua-resty-mongol, and I'm facing this issue:

local versions = {}
local t = {}
table.insert(t,{a = "aa"})
table.insert(t,{b = "bb"})
versions={{name="dog",container="mycontainer",tab= t}}

mongos> db.files.find({container:'mycontainer'}).pretty()
{
"_id" : ObjectId("4fbb710018b42f60c829ae87"),
"container" : "mycontainer",
"tab" : [
undefined,
{
"a" : "aa"
},
{
"b" : "bb"
}
],
"name" : "dog"
}


Why is ther "undefined" field ?

Also, pushing new info to "tab" results in resetting "tab" into new array of:
[
undefined,
{
"c" : "cc"
}
]


Did I do anything wrong or is this a bug ?


Pierre

_______________________________________________
nginx mailing list
nginx@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx
Pierre
Re: lua-resty-mongol - table insertion
May 22, 2012 03:00PM
to be more precise, issue can be only

reproduced when trying to
insert table of tables

On Tue, 22 May 2012 12:59:29 +0200, Pierre
wrote:

> Hi list,
>
> I'm currently moving into lua-resty-mongol, and
I'm facing this issue:
>
> local versions = {}
> local t = {}
>
table.insert(t,{a = "aa"})
> table.insert(t,{b = "bb"})
>
versions={{name="dog",container="mycontainer",tab= t}}
>
> mongos>
db.files.find({container:'mycontainer'}).pretty()
> {
> "_id" :
ObjectId("4fbb710018b42f60c829ae87"),
> "container" : "mycontainer",
>
"tab" : [
> undefined,
> {
> "a" : "aa"
> },
> {
> "b" : "bb"
> }
> ],
>
"name" : "dog"
> }
>
> Why is ther "undefined" field ?
>
> Also,
pushing new info to "tab" results in resetting "tab" into new array
of:
> [
> undefined,
> {
> "c" : "cc"
> }
> ]
>
> Did I do anything
wrong or is this a bug ?
>
> Pierre
>
>
_______________________________________________
> nginx mailing list
>
nginx@nginx.org [1]
> http://mailman.nginx.org/mailman/listinfo/nginx
[2]



Links:
------
[1] mailto:[email protected]
[2]
http://mailman.nginx.org/mailman/listinfo/nginx
_______________________________________________
nginx mailing list
nginx@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx
bigplum
Re: lua-resty-mongol - table insertion
May 23, 2012 08:30AM
I found this problem before, but I'm not sure how to modify it. The
reason is:

Lua table index is begin from 1, but array in mongodb is 0. So there
will be a
undefined element in mongodb array whose index is 0.

If we modify the driver to make index=index-1 when insert into mongodb
and
index=index+1 when read from mongodb, the "undefined" will be
eliminated.
We will found that the tab[1]=aa inserted into mongodb will be tab[0]=aa
actual
stored in mongodb, and it's conflict with other language drivers.

Posted at Nginx Forum: http://forum.nginx.org/read.php?2,226716,226744#msg-226744

_______________________________________________
nginx mailing list
nginx@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx
Sorry, only registered users may post in this forum.

Click here to login