对象MongoDB深入学习:存储嵌套对象的技巧(mongodb存储嵌套)

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的嵌套文档还支持其他的查询,使用更加任意灵活的方式来匹配,从而可以用一个查询来完成以前不能完成的工作 ,存储嵌套的对象是一种非常强有力的方法,可以帮助我们在开发过程中应用丰富的结构,从而更好地模拟实际问题,可以灵活地把它们混合成一个复杂的数据模型,从而更好地获取最终需要的结果。


数据运维技术 » 对象MongoDB深入学习:存储嵌套对象的技巧(mongodb存储嵌套)