Javascript 无法在MongoDB服务中搜索ObjectID

Javascript 无法在MongoDB服务中搜索ObjectID,javascript,mongodb,mongodb-stitch,Javascript,Mongodb,Mongodb Stitch,我已经尝试了几个小时来让这个简单的查询工作,但不知怎么的它没有。我在MongoDB Stitch中创建了一个HTTP服务,并使用如下ID调用该服务 在服务中,我想禁用ID为x的帐户,因此我尝试这样调用它: exports = function(payload) { var queryArg = payload.query || ''; var ID = queryArg.ID || ''; if(ID !== "") { const mongo

我已经尝试了几个小时来让这个简单的查询工作,但不知怎么的它没有。我在MongoDB Stitch中创建了一个HTTP服务,并使用如下ID调用该服务

在服务中,我想禁用ID为x的帐户,因此我尝试这样调用它:

exports = function(payload) {

    var queryArg = payload.query || '';
    var ID = queryArg.ID || '';
    if(ID !== "")
    {
        const mongodb = context.services.get("mongodb-atlas");
        const mycollection = mongodb.db("myDB").collection("myCollection");
        var oID = new BSON.ObjectId(ID);
        return mycollection.updateOne({oID}, {$set:{isdisabled: true}});
    }
}
{
  "properties": {
    "_id": {
      "bsonType": "objectId"
    },
    "user_id": {
      "bsonType": "string"
    }
  }
}
无论我是否质疑:

{ID}
{oID}
{_id:ID}
{_id:oID}
...
我总是收到0个结果,但当我在MongoDB Atlas集合中时,我可以查询

{_id:ObjectId("myID")}
并得到正确的结果。规则和权限没有问题,因为如果我跑

return mycollection.findOne({})
我被击中了

知道我做错了什么吗


我有一个类似的问题,我花了一段时间才弄明白。此问题(可能)是由于与此集合关联的“规则”造成的。进入Stitch应用程序中的“规则”菜单项,然后选择权限旁边的“架构”选项卡。在这里,您将看到如下内容:

exports = function(payload) {

    var queryArg = payload.query || '';
    var ID = queryArg.ID || '';
    if(ID !== "")
    {
        const mongodb = context.services.get("mongodb-atlas");
        const mycollection = mongodb.db("myDB").collection("myCollection");
        var oID = new BSON.ObjectId(ID);
        return mycollection.updateOne({oID}, {$set:{isdisabled: true}});
    }
}
{
  "properties": {
    "_id": {
      "bsonType": "objectId"
    },
    "user_id": {
      "bsonType": "string"
    }
  }
}

在上面的例子中,_id字段是一个objectId,而user_id字段是一个字符串。架构必须与您正在搜索的内容相匹配。希望这有帮助

您是否尝试过类似于
{“\u id”:BSON.ObjectId(“5cbf35751c9d44000054e54f”)}
的方法?您有没有尝试过这种方法?现在是5月,这个问题似乎仍然存在,我在stitch Function的任何集合中都找不到。有人能解决这个问题吗?我面临着同样的问题。