我最近一直试图把我的头发拉出来,陷入我称之为微不足道的问题上。nodejs 中 mongoose 处理特定字段输入的方式。我有一个特定的问题,即 mongoose 的行为与 mongodb 的行为不同。
问题如下,如果我在字段名称中使用“-”符号,猫鼬似乎会对其进行一些奇怪的操作,而不是将其作为字符串的一部分接受。我试过运行几个正则表达式命令,一些 / 转义,但是它应该只接受输入,因为我知道我正在寻找的具体数据。
导致问题的代码如下:
datapoints.find({type: "charging-type", device: device._id})
.exec(function(err, objects){
if(!objects){
log("Can't find objects");
}
});
直接进入 mongo shell 并输入:
db.datapoints.count({type: "charging-type", device: device._id})
取出类型使一切正常,将类型更改为例如:分流电压,电流,......都可以正常工作。
因此,使用此 - 符号会出现问题。输入带有特殊字符的输入字符串作为精确字符串的方法是什么?
任何帮助将非常感激。
根据要求编辑;我没有收到任何错误,我得到 objects==undefined (或!objects),架构在下面。
var datapointSchema = mongoose.Schema({
type: { type: String, lowercase: true},
value: { type: Number},
timestamp: { type: Number},
device: { type: ObjectId, ref: "devices"}
});
module.exports = mongoose.model('datapoints', datapointSchema)