请教大家一个数据库设计的问题
发布于 6 年前 作者 lzszone 4341 次浏览 来自 问答

我在维护一个论坛,数据库打算更换到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,整体重构,索性就换掉了, 另一方面也是自己想折腾一下吧

@rrbe , @TimLiu1 谢二位,昨天我发现这个问题了… 的确是思想没有转变过来…还是本人差点火候呀…

所说的数据库一般隐藏了一个前缀“关系型”,就是RDBMS最前那个R

回到顶部