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

mongodb search query - returns all results (non matching ones too)

本文关键字:结果 不匹配 搜索 查询 返回 Mongodb      更新时间:2023-09-26

这是一个来自MEAN stack网站的示例,我要求查询返回与输入"完全"匹配的参数。请查看附件中的图片,以便更好地理解这个问题。

查询功能

关于这个问题有什么提示吗?(我是初学者,请详细说明一下)-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 } ]`

键'hp','length'等位于cable模式的主体对象内。所以要指代"hp",就用"body"。Hp ' in query

将查询更改为

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

混淆是与赋值- 1body来自req body和另一个来自'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;