zl程序教程

您现在的位置是:首页 >  数据库

当前栏目

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

MongoDB存储对象学习 技巧 深入 嵌套
2023-06-13 09:12:43 时间

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


我想要获取技术服务或软件
服务范围:MySQL、ORACLE、SQLSERVER、MongoDB、PostgreSQL 、程序问题
服务方式:远程服务、电话支持、现场服务,沟通指定方式服务
技术标签:数据恢复、安装配置、数据迁移、集群容灾、异常处理、其它问题

本站部分文章参考或来源于网络,如有侵权请联系站长。
数据库远程运维 对象MongoDB深入学习:存储嵌套对象的技巧(mongodb存储嵌套)