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

Passing variables into a query in mongoose in the first argument

我正在使用 MEAN 堆栈,我的 mongodb

中有一个这样的条目
{ "_id" : ObjectId("5577467683f4716018db19ed"),
"requestMatrix" : { "1698005072" : { "rideId" : "641719948", "status" :"accepted" },"1698005073" : { "rideId" : "641719545", "status" :"rejected" }  }, 
"partners":[ { "customerNumber" : 1698005072 }, { "customerNumber" : 1698072688 } ]}

我想查询数据库 return 我根据状态是接受还是拒绝整个文档。

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

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

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

试过这样的东西

var criteria = "'requestMatrix.'"+customerNumber+"'.status'";
    JoinedRide.find({criteria:"accepted"},function(err,joinedRides){

    })

其中 customerNumber 会根据不同的请求而变化,在上述情况下其值为 1698005072

感谢任何帮助。

你需要做这样的事情:

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

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

})