查找管道内的 ObjectId 匹配无法正常工作
Posted
技术标签:
【中文标题】查找管道内的 ObjectId 匹配无法正常工作【英文标题】:ObjectId match inside lookup pipeline doesn't work in normal way 【发布时间】:2020-02-09 01:08:20 【问题描述】:问题部分是管道内的 $match: contentId: "$$content_id"
。它返回一个空数组。但是当我像下面这样改变它时,它工作正常。这是我的聚合管道的阶段对象。第一个有什么问题?当让变量是objectId时,简单匹配被设计为不适用于查找管道?感谢您的时间。
const contentReactionLookUp = (user_id) =>
return
$lookup:
from: "contentreactions",
let: content_id: "$_id" ,
pipeline: [
$match:
$expr:
$eq: [ "$contentId", "$$content_id" ] ,
,
// $match: contentId: "$$content_id" , it doenst' work!
],
as: "userReaction"
,
【问题讨论】:
【参考方案1】:https://docs.mongodb.com/manual/meta/aggregation-quick-reference/#aggregation-expressions我在这里找到了我的解决方案。如果传递的值为字段路径,mongo聚合简单匹配不起作用。
【讨论】:
以上是关于查找管道内的 ObjectId 匹配无法正常工作的主要内容,如果未能解决你的问题,请参考以下文章
Mongodb - 解决 ( aggregate聚合管道 ) $match 根据 id 匹配 返回 [ ] 的问题