문제

How can this mongodb embedded document structure be modeled in Web2PY DAL ?

{
   _id: "joe",
   name: "Joe Bookreader",
   addresses: [
                {
                  street: "123 Fake Street",
                  city: "Faketon",
                  state: "MA",
                  zip: 12345
                },
                {
                  street: "1 Some Other Street",
                  city: "Boston",
                  state: "MA",
                  zip: 12345
                }
              ]
 }
도움이 되었습니까?

해결책

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)

다른 팁

Look for list and 'json` types under the documentation section here:

http://www.web2py.com/book/default/chapter/06#Record-representation

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top