node新手请教一个问题。
我正在做一个微博系统,mongodb里插入了2个文档:user和article,user保存用户信息,article保存文章信息。
如下图!

用户的uid是不可以更改的,name可以更改,所以article文档中只存储了作者的uid,而没有存name。
那么问题来了,我如何在查询这个文章的时候将作者的name也找出来呢?谢谢解惑
Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
mongo这种非关系型数据库,是鼓励你用多条查询来拼结果的。先把文章那条记录查出来,然后取出uid的值,去用户集合里查出用户信息。当然,如果不是设置uid作为主键的话,可以给uid建个索引
使用DBRef在存储的时候进行关联
假如user存储的ObjectID为:57574e3f33de6266b5845052c02c
在article写入这样操作:
在查询article时就可以读取到author对象了
这种情况我一般是把name字段也存到article表里,当然只是治标不治本的方法...
没看到你article里面的uid这一项,但我想这不是问题,肯定要有的。
操作mongodb我一般喜欢用mongoose,这里需要mongoose的populate操作
首先在定义model的时候在article里面定义
uid:{type:mongoose.Schema.Types.ObjectId,ref:'User'}
然后查询的时候
直接保存了name信息