mongodb 搜索查询 - returns 所有结果(也有非匹配结果)
mongodb search query - returns all results (non matching ones too)
这是来自 MEAN stack 网站的示例,
我需要查询 return 与输入“完全”匹配的参数。
请查看所附图片以更好地了解问题。
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 } ]`
键'hp'、'length'等在cable schema的body对象中。所以要引用 'hp' 在查询
中使用 'body.hp'
将您的查询更改为
var query = Cable.find({'body.hp' : parseInt(reqHp) , 'body.length' : parseInt(reqLen),
'body.diameter' : parseInt(reqDia) ,'body.voltage' : parseInt(reqVol)})
混淆与分配有关 - 1body 来自 req body,另一个来自“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;
这是来自 MEAN stack 网站的示例, 我需要查询 return 与输入“完全”匹配的参数。 请查看所附图片以更好地了解问题。
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 } ]`
键'hp'、'length'等在cable schema的body对象中。所以要引用 'hp' 在查询
中使用 'body.hp'将您的查询更改为
var query = Cable.find({'body.hp' : parseInt(reqHp) , 'body.length' : parseInt(reqLen),
'body.diameter' : parseInt(reqDia) ,'body.voltage' : parseInt(reqVol)})
混淆与分配有关 - 1body 来自 req body,另一个来自“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;