在第一个参数中将变量传递给mongoose中的查询

时间:2015-06-10 20:11:14

标签: node.js mongodb mean-stack

我正在使用MEAN堆栈,我的mongodb中有这样的条目

[basicController.navigationItem setHidesBackButton:YES];
[basicController.navigationItem setTitle:@"Find Duo Partners"];

我想查询数据库,根据状态是被接受还是被拒绝,将整个文档返回给我。

当我在命令提示符中运行以下查询时,我得到了预期的答案

{ "_id" : ObjectId("5577467683f4716018db19ed"),
"requestMatrix" : { "1698005072" : { "rideId" : "641719948", "status" :"accepted" },"1698005073" : { "rideId" : "641719545", "status" :"rejected" }  }, 
"partners":[ { "customerNumber" : 1698005072 }, { "customerNumber" : 1698072688 } ]}

但是当我想从nodeJs做同样的事情时,由于上面查询中的数字1698005072是一个变量,我被困住了,我无法为此编写查询。

试过这样的事情

db.joinedrides.find({'requestMatrix.1698005072.status':"accepted"})

其中customerNumber因不同请求而异,在上述情况下其值为1698005072

感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

你需要做这样的事情:

var query = {};
var criteria = "requestMatrix." + customerNumber + ".status";
query[criteria] = "accepted"

JoinedRide.find(query,function(err,joinedRides){

})