在MongoDB中将Match exp与objectId一起使用

问题描述

我正在创建一个带有变量的查询,以添加一个键并与该键相对应,我需要检查所提及的ID是否等于所有者ID。我将此代码名称一起使用,并且工作正常,但对于对象ID,我遇到了错误。我尝试了toObjectId函数,但在MongoDB中无法识别。在这种情况下如何使用匹配功能?我应该在哪里添加“ $ oid”功能或其他任何有帮助的东西?

 {"collection": "Sample","aggregate": [
            {"$addFields" : {"Key" : {{ Key }} }},{"$project": {"owner": "$owner","check": {"$switch": {"branches": [{"case": {"$eq": ["$Key",556312]},"then": "5efaefc277fabb0d0f7039ab"},{"case": {"$eq": ["$Key",844012]},"then": "5e046b55d1fe060d020f51ac"}
                                ]}}}},{"$oid": "check"},{"$match" :{"$expr" : {"$eq" :["$owner","$check"]}}}
    
    ]}

解决方法

从驱动程序导入对象ID

ObjectId = require('mongodb').ObjectID;

由于您的ID是经过硬编码的,因此可以像这样使用它:

ObjectId("5efaefc277fabb0d0f7039ab")