Javascript 将长查询字符串直接解析到MongoDB(就像在SQL中一样) 在PHP、C++或java等方面,我可以向MySQL < /P>发送一个完整的复杂查询。 myQuery = 'SELECT * FROM BOOKINGS WHERE STATUS < 5 ORDER BY CHECKIN'; resultArray = mySql_query(myConnnect,myQuery);
有些查询非常长,我会动态生成它们 现在我把它们复制粘贴到Robomongo上测试结果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中相应地传递键值对 更多
有什么想法吗?您可以直接使用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);
});
});