【问题标题】:Passing variables into a query in mongoose in the first argument在第一个参数中将变量传递给 mongoose 中的查询
【发布时间】:2015-06-11 04:31:57
【问题描述】:

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

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

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

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

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

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

试过这样的

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

    })

其中 customerNumber 会因不同的请求而有所不同,在上述情况下,其值为 1698005072

感谢任何帮助。

【问题讨论】:

    标签: node.js mongodb mean-stack


    【解决方案1】:

    你需要做这样的事情:

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

    【讨论】:

    • 非常感谢,它成功了 :) 真的把我从泡菜中救了出来 :)
    猜你喜欢
    • 1970-01-01
    • 2014-08-31
    • 2023-03-05
    • 2019-12-07
    • 1970-01-01
    • 2020-11-30
    • 1970-01-01
    • 2019-11-03
    • 2015-02-06
    相关资源
    最近更新 更多