Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/390.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将长查询字符串直接解析到MongoDB(就像在SQL中一样) 在PHP、C++或java等方面,我可以向MySQL < /P>发送一个完整的复杂查询。 myQuery = 'SELECT * FROM BOOKINGS WHERE STATUS < 5 ORDER BY CHECKIN'; resultArray = mySql_query(myConnnect,myQuery);_Javascript_Node.js_Mongodb - Fatal编程技术网

Javascript 将长查询字符串直接解析到MongoDB(就像在SQL中一样) 在PHP、C++或java等方面,我可以向MySQL < /P>发送一个完整的复杂查询。 myQuery = 'SELECT * FROM BOOKINGS WHERE STATUS < 5 ORDER BY CHECKIN'; resultArray = mySql_query(myConnnect,myQuery);

Javascript 将长查询字符串直接解析到MongoDB(就像在SQL中一样) 在PHP、C++或java等方面,我可以向MySQL < /P>发送一个完整的复杂查询。 myQuery = 'SELECT * FROM BOOKINGS WHERE STATUS < 5 ORDER BY CHECKIN'; resultArray = mySql_query(myConnnect,myQuery);,javascript,node.js,mongodb,Javascript,Node.js,Mongodb,有些查询非常长,我会动态生成它们 现在我把它们复制粘贴到Robomongo上测试结果 有什么想法吗?您可以直接使用NodeJS中的db.command运行查询 聚合查询为db命令采用以下形式 调整javascript以将信息作为键值对发送。为collectionname和query分别键入,并将其值传递到下面的命令中 db.command(聚合:collectionname, 管道:查询, 游标:{} } 不同类型的查询具有不同的语法。因此您必须在db.command中相应地传递键值对 更多

有些查询非常长,我会动态生成它们 现在我把它们复制粘贴到Robomongo上测试结果


有什么想法吗?

您可以直接使用NodeJS中的
db.command
运行查询

聚合查询为db命令采用以下形式

调整javascript以将信息作为键值对发送。为
collectionname
query
分别键入,并将其值传递到下面的命令中

db.command(聚合:collectionname,
管道:查询,
游标:{}
}

不同类型的查询具有不同的语法。因此您必须在
db.command
中相应地传递键值对

更多


您是如何生成它们的?从DB调用或URL?还是其他地方?@DanGreen Leipciger我只是根据许多字段和逻辑的内容用javascript生成它们,目前我将长查询解析到控制台,复制并通过Robomongo运行。再次感谢Veeram:-)这正是我想要的:)所以如果我必须解析这样的东西,它会是什么样子?db.getCollection(“contactlist”).aggregate([{$match:{name:{Tim}},{$project:{{u id:0,name:1,number:1}}])可能是这样的:`var myFunction=function(req,res){db.contactlist.aggregate([{$match:{name:{Tim},{$project:{{u id:0,name:1,number:1},},]),function(err,doc)('XXX'+doc);res.json(doc);};};};`不客气。尝试类似于
var myFunction=function(req,res){db.command({aggregate:req.body.collectionname,pipeline:req.body.query,cursor:{}},function(err,doc){console.log('XXX'+doc);res.json(doc);};};
的请求应该是
{“collectionname:“contactlist”,“query:[{$match:{name:{Tim”},{$project:{{{{U id:0,“name”:1,“number”:1}}]}
var express = require('express');
var app = express();
app.get(myDatabase, function(req, res){

    my-long-query = 'db.getCollection("receipt").aggregate([{$match:{bookingId:"94JCI"}},{$project:{"_id":0,"receiptNo":1,"amount":1}}])'
    db.myDatabase.parse-my-long-query(function(err, docs) {
        res.json(docs);
    });

});