2014-02-10 34 views

回答

1

MongoDB的,web2py的DAL可以是這樣的

db = DAL('mongodb://username:[email protected]/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') 

對於插入你可以做

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]) 

或者直接就可以做到這一點代碼:

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) 
+0

沒有Web2pyDAL,MongoDB的工作更好,它非常簡單。只有當你需要交叉platofrm數據庫語法時,你需要DAL。不知道如果身份驗證如何在web2py + mongo tho中工作,還沒有更新很久。 –

1

查找list和「json`類型下的文件部分在這裏:

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

+0

我試圖嵌入文檔模型。不會使用列表和json數據只是從DAL的角度添加一個文本數組?嵌入式文檔不能作爲文檔訪問。或者他們會? –

+0

您應該查看的文檔應該說是「..專門爲MongoDB添加..」,這意味着存儲的工作方式與其在標準RDBMS中的顯示方式不同。這就是說,這些都是實驗性的,可能會有變化。 –