For mongodb, the web2py DAL can be like this
db = DAL('mongodb://username:password@localhost/test', pool_size=0)
db.define_table('address',
Field('street'),
Field('city'),
Field('state'),
Field('zip'),
format='%(name)s')
db.define_table('table',
Field('name'),
Field('address','list:reference address'),
format='%(name)s')
For insertion you can do
first = db.address.insert(street = '123 Fake Street',
city = 'Faketon',
state = 'MA',
zip = '12345')
second = db.address.insert(street = '1 Some Other Street',
city = 'Boston',
state = 'MA',
zip = '12345')
db.table.insert(name = 'Joe Bookreader', address = [first, second])
Or directly you can do this code:
db.define_table('table_name',Field('name'),Field('addresses','text'))
list_data = [
{
street: "123 Fake Street",
city: "Faketon",
state: "MA",
zip: 12345
},
{
street: "1 Some Other Street",
city: "Boston",
state: "MA",
zip: 12345
}
]
db.table_name.insert(name='Joe Bookreader', addresses=list_data)