mongodb搜索查询 - 返回所有结果(非匹配的)

时间:2016-11-07 07:27:06

标签: javascript angularjs mongodb mean-stack

这是来自MEAN堆栈网站的示例, 我要求查询返回与输入“完全”匹配的参数。 请查看附件中的图像以更好地了解问题。

Search Query Function

有关此问题的任何提示吗? (我是初学者所以请详细说明一下) -TIA :)

  Input for the search from the browser 

  { body: { hp: 1, length: 1, diameter: 1, voltage: 1 } }
 // mongo schema 

  var CableSchema = new schema({
        body : {
            "hp": {
                type: Number
            },
            "length": {
                type: Number
            },
            "diameter": {                      
                type: Number
            },
            "voltage": {                        
                type: Number
            },
            "cost": {
                type: Number
            },

            "type": {
                type: String,
                default: "Cable"
            }
        }
    });

-----------------------------------------------------------
  // Result from Search Query obtained in console 

    [ { body:
         { type: 'Cable',
           cost: 1,
           voltage: 1,
           diameter: 1,
           length: 1,
           hp: 1 },
        __v: 0,
        _id: 5820246086d42a3c269ad9f2 },
      { body:
         { type: 'Cable',
           cost: 2,
           voltage: 2,
           diameter: 2,
           length: 2,
           hp: 2 },
        __v: 0,
        _id: 5820249086d42a3c269ad9f3 } ]`

2 个答案:

答案 0 :(得分:0)

键' hp''长度'等等在有线模式的主体对象内。所以要参考' hp'使用' body.hp'在查询中

将您的查询更改为

var query = Cable.find({'body.hp' : parseInt(reqHp) , 'body.length' : parseInt(reqLen),
        'body.diameter' : parseInt(reqDia) ,'body.voltage' : parseInt(reqVol)})

答案 1 :(得分:0)

混乱与任务有关 - 1人来自req身体,另一人来自' 2body'模式 我需要使用1body.2body来获取数据。



    var reqHP = req.body.body.hp;
    var reqLen = req.body.body.length;
    var reqDia = req.body.body.diameter;
    var reqVol = req.body.body.voltage;
    var reqCost = req.body.body.cost;