時間:2024-03-26 14:46作者:下載吧人氣:26
MongoDB 向存儲和查詢結構化信息提供了優越的支持,在實際的開發過程中,存儲嵌套的對象是很常見的, MongoDB 支持存儲嵌套的對象,只有將其文檔結構化后才能實現存儲和檢索目標字段和值,本小節介紹如何利用 MongoDB 存儲值進行嵌套對象存儲。
嵌套結構的字段指的是一個對象中還包含另一個對象,在 MongoDB 中來說,它對應的就是文檔中嵌套文檔,如:
// 嵌套字段
{ userID: "102941",
name: "Kevin", address: {
street: "Center Road", city: "北京"
}}
上面的案例中,在userID和name之外。我們還定義了一個地址的字段,該字段被設置為一個嵌套的對象本身,而不是一個單獨的字段,字段中記錄了街道和城市信息,如果不采取此種方式存儲則會使用多個字段來表示地址的字段。
MongoDB 能夠允許更深層次的嵌套,當插入一個新的元素到已有字段中時,它也可以成為一個新的字段。 MongoDB也支持多重混合嵌套。如:
// 多重混合嵌套
{ userID="102941",
name: "Kevin", address: {
street: "Center Road", cellphone: [
{ model: iPhone,
price: 6999 },
{ model: SamSung,
price: 5999 }
] }
}
每個嵌套內部的文檔可以完全由它嵌套的文檔決定,可以相互不同,這樣字段的靈活性就得到極大的加強。
MongoDB 對嵌套文檔的查詢非常便捷,可以通過簡單的查詢來獲取嵌套對象里指定字段的值,如查詢上面嵌套對象中 iPhon 的價格可以如下查詢:
db.collection.find({'address.cellphone.model': 'iPhone'},{'address.cellphone.$': 1})
以上查詢可以得到想要的結果,就是獲取 model 為 iPhon 的價格。
以上未提及的,MongoDB的嵌套文檔還支持其他的查詢,使用更加任意靈活的方式來匹配,從而可以用一個查詢來完成以前不能完成的工作 ,存儲嵌套的對象是一種非常強有力的方法,可以幫助我們在開發過程中應用豐富的結構,從而更好地模擬實際問題,可以靈活地把它們混合成一個復雜的數據模型,從而更好地獲取最終需要的結果。
網友評論