0

我正在创建一个带有变量的查询以添加一个键并对应于我需要检查提到的 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"]}}}
    
    ]}
4

1 回答 1

1

从您的驱动程序导入对象 ID

ObjectId = require('mongodb').ObjectID;

并且像这样使用它,因为您的 id 是硬编码的:

ObjectId("5efaefc277fabb0d0f7039ab")
于 2020-09-25T06:40:49.270 回答