我正在尝试找到SoldProduct
intimeOrderNumber
等于'3'
。
var query = { intimeOrderNumber: '3' };
但我得到一个空数组。
SoldProduct.find(query, function(err, soldProducts) {
if (err) {
console.log(err);
} else {
console.log(soldProducts.length);
for (var i = 0; i < soldProducts.length; i++) {
if (soldProducts[i].intimeOrderNumber === '3') {
console.log(typeof soldProducts[i].intimeOrderNumber);
console.log(soldProducts[i].intimeOrderNumber);
}
}
}
});
输出:
0
但是当我像这样更改query
时:
var query = {};
并运行相同的find
,显然实际上 一个SoldProduct
,intimeOrderNumber
等于'3'
,因为输出更改为:
15
string
3
我在intimeOrderNumber: String
模型定义中有SoldProduct
。为什么第一个查询返回一个空数组?
答案 0 :(得分:0)
问题在于我直接通过MongoDB控制台将intimeOrderNumber
添加到数据库中,我不小心添加了Number
而不是String
。
因此,在查找文档时,'3'
与3
不匹配,因此找不到它。但是当我用空查询找到它时,intimeOrderNumber
以某种方式被转换为String
,因为这是在模型中设置的方式。