parsing一个长查询string直接到MongoDB(就像你可以在SQL中)

在PHP或C ++或Java等我可以发送一整个复杂的查询到MySql

myQuery = 'SELECT * FROM BOOKINGS WHERE STATUS < 5 ORDER BY CHECKIN'; resultArray = mySql_query(myConnnect,myQuery); 

现在我正在和使用MongoDB的MEAN一起工作。 有没有办法在这里做同样的事情?

 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); }); }); 

一些查询是真的很长,我dynamic生成它现在我复制粘贴到Robomongotesting结果。

有任何想法吗?

您可以使用节点js中的db.command直接运行查询。

作为db命令的聚合查询采用下面的forms。

https://docs.mongodb.com/manual/reference/command/aggregate/#aggregate-data-with-multi-stage-pipeline

调整您的JavaScript以发送信息作为键值对。 键入每个collectionnamequery ,并将它们的值传递给下面的命令。

db.command( aggregate: collectionname, pipeline: query, cursor: { } }

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

更多在这里

https://docs.mongodb.com/manual/reference/command/