我被猫鼬难住了。我试图找到一个匹配instanceId和currentQuantity的记录。我可以看到数据库中的记录,我知道currentQuantity是数字而不是字符。但我的查询找不到这些记录。 我试过这个:
titleRecords.findOne({"titleByDate.instanceId": 100156
})
结果:返回查询,但不包括我需要的第二个条件。所以我尝试了这个:
titleRecords.findOne({"titleByDate.instanceId": 100156
, "titleByDate.currentQuantity": {"$gt": 0}
})
结果:不返回我正在寻找的记录(根本不返回任何记录)
我用额外的括号尝试了这个:
titleRecords.findOne({{"titleByDate.instanceId": 100156
, "titleByDate.currentQuantity": {"$gt": 0}
}})
结果:我收到第一个{意外
的错误我试过这个:
titleRecords.findOne({"titleByDate.instanceId": 100156
, "titleByDate.currentQuantity": {$gt: 0}
})
结果:不返回任何记录。我认为在“$ gt”附近需要引用,但老实说,我对mongoose语法很困惑,并且在我的生活中找不到任何关于如何在mongoosejs.com上执行此操作的文档
根据请求,这里有三个示例记录。上面的第一个查询返回中间记录 - 其他任何一个都没有返回任何内容。如果这不是分享数据的正确格式,我很抱歉 - 请告诉我是否有更好的方法
{
"_id": {
"$oid": "59936"
},
"titleByDate": {
"currentQuantity": 4,
"title": "ABC",
"instanceId": 150351
},
"__v": 0
},
{
"_id": {
"$oid": "54936"
},
"titleByDate": {
"currentQuantity": 2,
"title": "QPR",
"instanceId": 100156
},
"__v": 0
},
{
"_id": {
"$oid": "51936"
},
"titleByDate": {
"currentQuantity": 0,
"title": "QQQ",
"instanceId": 143159
},
"__v": 0
}
我的模特陈述:
var mongoose = require('mongoose');
mongoose.Promise = global.Promise;
// define the schema for a play
var titleListingSchema = mongoose.Schema({
title : {
titleId : Number,
title : String,
},
titleByDate :{
instanceId : Number,
title :String,
currentQuantity: Number
}
});
module.exports = mongoose.model('titleListing', titleListingSchema);