请教大家一个数据库设计的问题
我在维护一个论坛,数据库打算更换到mongodb, 然后遇到了这样一些问题 查询大概是这样的步骤:
数据表T, 数组A[objectid关联 表T]
1.筛选T得到结果1;
2.从数组A中拓展得到结果2;
3.合并结果1结果2,得到结果3;
4.筛选排序结果3,得到最终结果;
第一个问题: 这样的查询MONGO怎么实现? 第二个问题: 在aggregate中如何返回这种结果(分页)
{
length: x,
documents: [
doc1,
...
]
}
9 回复
。。。。。
第一个,看不懂。第二个,mongodb做分页,网上有各种方案。length需要单独查询一次。
不明觉厉没有DBA还迁移到Mongodb请问有什么好处?
- 第一个:
T.find(condition).populate(‘A’).sort(condition: -1)
需要在 T 中对应的 objectId 做 ref,参考 mongoose population
- 第二个:
分页是有 skip/limit 方法的,但是 length 应该指的是总数 count? 这个就需要再查一次了,mongoose 提供 count 方法
选择mongodb 的时候设计思想需要变一变,尽量使用反范式化设计
From Noder
因为mongodb 本身是面向文档的
From Noder
@Matrixbirds no,没有任何明显的好处,原先用的arangodb,然后后一定概率假死,解决不了,最近做restful,整体重构,索性就换掉了, 另一方面也是自己想折腾一下吧
所说的数据库一般隐藏了一个前缀“关系型”,就是RDBMS最前那个R