【发布时间】:2022-01-31 11:27:36
【问题描述】:
我正在使用 mongodb 将我的所有“帖子”存储在我的网站中。 我想查找所有“公开”的文档
我的想法是在每个文档中制作一个标志,以指示帖子是公开的还是私有的......但我不确定这在 mongo 中是否是一个好方法
这是我的 Doc 的方案。它代表一个“帖子”。在其“public”字段中,这反映了它是否公开
我想在服务器端过滤它。所以,我用猫鼬来处理这个。
但我不确定这种针对公共/私有的方法或架构设计是否有效。
这是我的想法:
const ObjectId = require("mongodb").ObjectId;
Post.aggregate([
{
$match: { _id: ObjectId(userId) }
},
{
$match: { public: true }
}
])
.then((posts) => res.send(posts))
.catch((error) => {
console.log(error);
res.sendStatus(400);
});
看起来很奇怪,效率低下,所以我想对上面的代码提出意见或改进
【问题讨论】:
-
如何使用私有和公共。如果所有用例都是分开的,请保持单独的集合
-
我的想法是在每个文档中制作标志以指示它是公共帖子还是私人帖子......但我不确定这是否是 mongo 中的好方法