0
所以我在使用where子句時使用mongoose進行查詢時遇到了問題。他們工作時,我過濾字符串,但不是數字。Mongoose查詢無法與where()進行數值過濾時使用
這是我的模型/方案:
// Schema
var Wheel = new mongoose.Schema({
name: String,
method: String,
size: Number,
width: Number,
weight: Number
});
// Model
var WheelModel = mongoose.model('Wheel', Wheel);
這個查詢的工作原理:
var query = WheelModel.find();
query.where('method').equals('Cast/Spun');
query.limit(10);
query.exec(function (err, wheels) {
// wheel objects are returned
});
這是陣列內部的輪體的一例 '輪子'
{
"_id": "523de98b263add11a8d4fc4a",
"name": "AME Circlar RS",
"weight": 18.1,
"width": 7,
"method": "Cast/Spun",
"size": 15
}
下面的這個查詢返回[],如果我按大小,寬度和重量進行過濾,並且對於任何數字,則這樣做會這樣做
var query = WheelModel.find();
query.where('size').equals(15);
query.limit(10);
query.exec(function (err, wheels) {
if (!err) {
return res.send(wheels);
} else {
return console.log(err);
}
});
我也曾嘗試
query.where('size', 15);
query.where('size', '15');
var query = WheelModel.find({ size: 15});
如果我去:
query.where('size').ne(15);
然後我得到的返回結果,但它們將包括值,其中大小爲15所以我懷疑我有一些類型問題,我只是不知道。任何幫助將是明智的!
您可以驗證並告訴我們MongoDB中字段'size'的類型嗎? –
他們是字符串。我沒有檢查,但我知道這是問題。我記得因爲我在模式中定義的類型引起的貓鼬拋出錯誤,所以我只是假設貓鼬會拋出錯誤......錯誤的假設。 –
在[Schema Types](http://mongoosejs.com/docs/schematypes.html)中,查看示例並特別檢查「age」字段或此特定[示例](http://mongoosejs.com/docs /api.html#schema_number_SchemaNumber-max)在**'Number' **類型字段上。希望這結束您的搜索解決方案..快樂的編碼;) –