请教大家一个数据库设计的问题
我在维护一个论坛,数据库打算更换到mongodb, 然后遇到了这样一些问题 查询大概是这样的步骤:
数据表T, 数组A[objectid关联 表T]
1.筛选T得到结果1;
2.从数组A中拓展得到结果2;
3.合并结果1结果2,得到结果3;
4.筛选排序结果3,得到最终结果;
第一个问题: 这样的查询MONGO怎么实现? 第二个问题: 在aggregate中如何返回这种结果(分页)
{
length: x,
documents: [
doc1,
...
]
}
9 回复
- 第一个:
T.find(condition).populate(‘A’).sort(condition: -1)
需要在 T 中对应的 objectId 做 ref,参考 mongoose population
- 第二个:
分页是有 skip/limit 方法的,但是 length 应该指的是总数 count? 这个就需要再查一次了,mongoose 提供 count 方法
@Matrixbirds no,没有任何明显的好处,原先用的arangodb,然后后一定概率假死,解决不了,最近做restful,整体重构,索性就换掉了, 另一方面也是自己想折腾一下吧