多表关联查询怎么做?
发布于 6 年前 作者 huanghaiyang 9452 次浏览 最后一次编辑是 3 年前

本人是菜鸟,练习的时候遇到了一个问题, 假如我有两张表,Author和Book,现在我想做一下模糊查询,通过一个关键字name_ 来查找Book的name like name_ 或者Book.Author.name like name_

对于嵌入式的文档模型关系我可以这么做: var User = mongoose.Schame({ name :String , author : { name :String } }); var reg = new Regex(name_ , ‘g’); User.find({$or:{name : reg,author.name :reg}}).exec();

但是为了独立表结构,实际ref模型如下: var User = mongoose.Schame({ name :String , author : { type :ObjectId, ref :‘author’ } }); var Author = mongoose.Schame({ name : String , books : [{ type : ObjectId , ref :‘book’ }] });

求:独立表怎样进行关联查询

4 回复

你使用API中的populate方法试一试,我没数据库,所以你自己try一下,需要时call我2426960129

意思是populate之后手动对记录进行过滤么? Book.find().select(‘name author author.name’).populate({path:‘author’}).exec(过滤);

扫表了。。。 这种情况下遇到分页怎么办啊

貌似可以用$elemMatch ,下班回家试试

@huanghaiyang 分页继续往后追加,只要不exec都是返回query对象

回到顶部