Javascript mongodb-node.js中的$or查询

Javascript mongodb-node.js中的$or查询,javascript,json,node.js,mongodb,Javascript,Json,Node.js,Mongodb,我正在尝试在mongodb中使用$or进行查询。。。 在Robomongo中,查询可以工作,但在浏览器中,它通过node.js返回nil 在RoboMongo中,我尝试了:db.ocorrecias.find{$or:[{{u id:ObjectId54ff5ed8d094b1e371fba0a7}}] 它起作用了,给我带来了JSON My app.js它使用相同的查询重新运行空json app.get('/obterOcorrencias',function(req,res){ cons

我正在尝试在mongodb中使用$or进行查询。。。 在Robomongo中,查询可以工作,但在浏览器中,它通过node.js返回nil

在RoboMongo中,我尝试了:db.ocorrecias.find{$or:[{{u id:ObjectId54ff5ed8d094b1e371fba0a7}}]

它起作用了,给我带来了JSON

My app.js它使用相同的查询重新运行空json

  app.get('/obterOcorrencias',function(req,res){

console.log(req.protocol+":/"+req.get('host'));
   var collection = "ocorrencias";
   var ObjectId = require('mongodb').ObjectID;

   collectionDriver.getCollection(collection, function(error, the_collection) {
        if (error) { 
res.end("<h1>Eerro</h1>");
        }
        else  
     the_collection.find(req.query, function(error,doc) { 
              if (error) 
                res.end(error);
              else {        
                res.status(200).send(doc);    
               }
            });

   });
链接:

http://mysite:3000/obterOcorrencias?query={$or:[{{u id:ObjectId54ff5ed8d094b1e371fba0a7}]

编辑:

如果我使用的不是_collection.findreq.query、functionerror、doc,而是_collection.find{'$or':{''u id':ObjectId'54ff5ed8d094b1e371fba0a7'};函数错误,doc
它可以工作…但是如果这个字符串来自参数,请不要…。

这是一个字符串而不是一个对象。我已经删除了我的答案。因为这个案子和我的猜测不一样。req.query包括什么?@user3765109 req.query.query是URL中的“query”参数,实际上,如果从您的req.query对象MongoDB本机驱动器中获得“$或:[{u id:'54ff5ed8d094b1e371fba0a7'}]”,则它不知道_id是objectdvalue。因此,我使用ODM猫鼬。在使用Mongoose时,我创建了一个模型来定义“\u id”是一个ObjectId,事实上,\u id字段是自动定义的,“username”是一个字符串,然后Mongoose在执行查询之前将我的查询参数自动转换为适合我的集合。这可能是你的问题?