CNode

mongoose 关联条件查询怎么写?

问答
994007boy发布于9 年前最后回复7 年前11 回复5744 浏览0 收藏

A表中ref了B表,B表有一个字段state 写一个查询体对象,找出所有B的state=2的A的信息 let query = {}; query = ????

查看回复

回复 (11)

X
xjchenhao#1·7 年前

不对啊...

为什么我的查询结果是:

[{
  _id:'xxxxxxx1',
  name:'xxxxx',
  B:null
},{
  _id:'xxxxxxx'2,
  name:'xxxxx',
  B:{
	_id:'xxxxxxx',
	state:2,
  }
}]

在结果中子表B的state不等于2时返回结果为null,整体的查询结果数量不变。

A.find().populate({ path:'B', match:{ state:2 } }).exec()

Y
YHp1994#3·9 年前

同求

9
94007boy#4·9 年前
引用 caiya__legacy_57233a715a26c4a841ecbef5A.find().populate({ path:'B', match:{ state:2 } }).exec()

@caiya 虽然还没验证,但我觉得你说的就是对的!谢谢!

9
94007boy#5·9 年前
引用 caiya__legacy_57233a715a26c4a841ecbef5A.find().populate({ path:'B', match:{ state:2 } }).exec()

@caiya 如果A还关联了C表,c的数据也要一起查出来,那么这么写对吗? A.find().populate({ path:‘B C’, match:{ state:2 } }).exec()

L
libook#6·9 年前

RTFM。。。 关系模型这么多为啥不用关系型数据库。。。

H
Huqiuwei#7·9 年前

https://segmentfault.com/a/1190000002727265 可以看看这个,参考一下

@94007boy 不对

@94007boy 应该再写一个populate级联在后面就行了

参与回复
登录后即可参与回复。登录