如何在req参数中传递密钥时在mongodb中搜索多个查询?

时间:2017-04-15 20:59:23

标签: angularjs mongodb express mongoose

当get请求调用此api时,搜索键通过id参数动态传入。

我们正在查找将Later_Today_P属性设置为true的对象。

示例mongo架构:

   {  "user_logged_email" : "liblibraryzone@gmail.com",
        "Counter_P" : false,
        "Negotiation_Willing_P" : false,
        "Grey_P" : false,
        "Left_VM_P" : false,
        "Later_Today_P" : false,
        "No_Updated_P" : false,
    }

这很有效:

exports.Later_Today_P_prioritySearch = function(req, res, next, id) {
    var id_2  = id;
    var dynamicId={};
    dynamicId[id_2]=true;

    Property.find(dynamicId).exec(function(err, properties) {

但现在我需要抓取Later_Today_P设置为true的对象以及user_logged_email =" libraryemail@gmail.com"

以下没有工作。

Property.find({dynamicId, user_logged_email : "libraryemail@gmail.com" }).exec(function(err, properties) {

尝试1:

出于某种原因,数据显示出来但是搞砸了。

var id_2  = id;
var dynamicId={};
dynamicId[id_2]=true;

var id_3  = "user_logged_email";
var dynamicEmail={};
dynamicEmail[id_3]="libertytrustgroupllc@gmail.com";

//这有效

Property.find(dynamicEmail).exec(function(err, properties) {

//这有效     Property.find(dynamicId).exec(function(err,properties){

//但由于某些原因,这不起作用。

Property.find(dynamicEmail, dynamicId).exec(function(err, properties) {

1 个答案:

答案 0 :(得分:0)

查询过滤器不正确。

这样的东西
var id_2=id;
var filter={};
filter[id_2]=true;
filter["user_logged_email"]="libraryemail@gmail.com";

这将导致{ "Later_Today_P" : true, "user_logged_email" : "libraryemail@gmail.com" }

继续使用相同的查询:

Property.find(filter).exec(function(err, properties) {