随着移动社交网络的发展,数据范围发展十分迅速,特别用户信息,业务记录等信息可能会超过百亿条和超过每秒几十亿次的读写操作,针对如此范围的数据,检索特别是过滤查询才是最重要的业务逻辑,其中 MongoDB 内嵌查询优化技术可以有效提高查询效力。
MongoDB 内嵌查询使用 Document 和 数组结构,使得我们对各个数据项进行查询要求时不需要屡次发起 SQL 查询要求,只需要做一次查询,就能够取得所有所需信息。MongoDB 中还可以很方便地使用内嵌数组,可以在父文档中寄存一个关联子文档的数组,比如以下代码,可使用两种过滤条件对子文档数组进行过滤:
//查找 shelf 为 c 的书
db.books.find({
name: ‘c’,
Shelf: {
$elemMatch:{
name:”c”,
count:{$gt:10}
}
}
})
//查找 shelf 为 c 的所有书
db.books.aggregate([
{$match : {name:’c’}},
{ $unwind: “$Shelf”},
{$match : {‘Shelf.name’:’c’,’Shelf.count’:{$gt:10}}}
])
另外, MongoDB 还支持多个内嵌查询,和条件类型的两重嵌套查询,可以有效的挑选数据库中的数据,加快查询速度,比以下面的例子:
// 查找 shelf 为 c 的书,并且 price 为 202 的
db.books.find({
name: ‘c’,
shelf: {
$elemMatch:{
name:”c”,
price: 202
}
}
})
总的来讲,使用 MongoDB 内嵌查询可以有效提升查询性能,可以大大减少发起数据检索的次数,从而减少读写延迟,提高系统处理能力。
本文来源:https://www.yuntue.com/post/127380.html | 云服务器网,转载请注明出处!

微信扫一扫打赏
支付宝扫一扫打赏