• 1.9k

请问,一个文章有多个标签,一个标签下面有多篇文章,用 mogoose 怎么设计表?

使用场景是这样子的:

发表文章时候,带有标签,一遍文章有很多个标签,

然后用查询一个标签时候,怎么查询到这个标签所有的文章??

然后整个 mongoodb 的数据设计的思路是怎么样子?求大神解答一下嘛,thx

阅读 1.6k
评论
    4 个回答

    文章包含_id,title,tags,content
    然后,tags又含有很多的tag

    • _id

    • title

    • tags

      • tag1

      • tag2

      • tag3

    • content

    可以这样去设计
    可以写一个返回特定标签下的所有文章的方法

    Post.getTag=function(tag,callback){
        mongodb.open(function(err,db){
            if(err){
                return callback(err);
            }
            db.collection('posts',function(err,collection){
                if(err){
                    mongodb.close();
                    return callback(err);
                }
                collection.find({
                    "tags":tag
                },{
                    "name":1,
                    "time":1,
                    "title":1
                }).sort({
                    time:-1
                }).toArray(function(err,docs){
                    mongodb.close();
                    if(err){
                        return callback(err);
                    }
                    callback(null,docs);
                });
            })
        });
    };

    然后在对应的路由调用

      文章保存的时候向标签tags数组(外键)中添加对应标签id,同时在对应的所有标签中增加文章id(外键)

        • 277

          同意楼上的解决办法,文章一个表,标签一个表,然后再建一个文章标签的对应关系表

            撰写回答

            登录后参与交流、获取后续更新提醒

            相似问题
            MongoDB 技术问答
            合作问答

            MongoDB 官方中文社区 和 SegmentFault 联合推出的 MongoDB 技术交流平台。 这是一个以社区力量为主,但...

            推荐文章