在第一个参数中将变量传递给 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){
})
我正在使用 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){
})