mongodb aggregate $match 中根据_id 做筛选,一直返回[]
xx.aggregate([
{$unwind: "$zview"},
{$match: {"zview.id": parseInt(ids), _id: '59814025e51a2412b49d1aa0'}},
{$project: {_id: 1, "zview": 1}}
])
我把 $match 中的_id属性去掉,就能查询出 zview.id 符合的所有数据,但是加上_id就直接返回空了,
把_id换成别的字段也参查出数据, 把查出来的_id再复制到这边再进行查询,就还是差不出来,确定有数据。
是不是 在match中不允许使用_id作为查询条件呢。但是找了资料也没有说不行。各位大老有没有遇到过类似问题。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
没看到数据是什么样子,我猜的:
_id
是ObjectId
,把ObjectId
跟String
比,结果当然是不等的。原理就跟1 != "1"
一个道理。COPY FROM
===
所有应该是