收藏
回答

云开发中数据库 读写次数的计算规则(免费版5万读写那个限制)到底是怎么算的?

比如我有两个表 一个是详细物件Item表,另一个是商店Store表,里面包含了一个含有ItemID的数组

假设Item表的内容是这些

[
  {
    _id:'item01',
    price: 50,
    descriptions:''
  },
  {
    _id:'item02',
    price: 10,
    descriptions:''
  },
  {
    _id:'item03',
    price: 90,
    descriptions:''
  }
]


Store表内容如下

[
  {
    _id:'store01',
    items:['item01','item02','item03']
  }
]


这时候我想查找某个店下的所有物件,我之前用的是两条查询,首先获取到

db.collection('store').where('_id':'store01')
将返回结果中的 items 作为数组使用 _in 的方式再执行另一个查询语句,这时候 items是一个数组
db.collection('item').where('_id':_.in(items))以上婴孩

以上应该是两次读取

后来研究了一下聚合查询后发现有新的方式

db.collection('store')
  .aggregate()
  .match({
      _id:'store01'
  }).
  lookup({
      from:'item',
      let:{
      itemId:'$items'
  },
  pipeline:$.pipeline()
      .match(_.expr(
          $.in(['$_id','$$itemId'])
      ))
      .done(),
  as:'items'
  })
  .end()


问题就是

  1. 这里用聚合 project, match,lookup等命令后,获得了相同结果,最后的数据库读写次数算几次?
  2. 假设我后面再加多个lookup,数据库读写次数又是几次?


回答关注问题邀请回答
收藏

1 个回答

  • 陈宇明
    陈宇明
    2020-09-14

    一个聚合就是一次

    2020-09-14
    有用
    回复 3
    • Haodong
      Haodong
      2020-09-14
      这里的一个聚合是指一个命令吗? 还是以.end()出现为一条聚合?
      2020-09-14
      回复
    • 陈宇明
      陈宇明
      2020-09-14回复Haodong
      end
      2020-09-14
      回复
    • Haodong
      Haodong
      2020-09-16
      嗯嗯 谢谢
      2020-09-16
      回复
登录 后发表内容
问题标签