Node.js Mongoose findOne不适用于特定查询,但适用于其他查询

Node.js Mongoose findOne不适用于特定查询,但适用于其他查询,node.js,mongodb,mongoose,nosql,Node.js,Mongodb,Mongoose,Nosql,我试图使用mongoose使用mongoDB,下面是db中的一个示例元素: { "_id": { "$oid": "59bc026679f3a71ed02e4812" }, "name": "Le Ruban blanc", "customID": 80074, "description": "Un village protestant de l'Allemagne du Nord à la veille de la Première Guerre mondiale

我试图使用
mongoose
使用
mongoDB
,下面是db中的一个示例元素:

{
  "_id": {
    "$oid": "59bc026679f3a71ed02e4812"
  },
  "name": "Le Ruban blanc",
  "customID": 80074,
  "description": "Un village protestant de l'Allemagne du Nord à la veille de la Première Guerre mondiale (1913/1914). L'histoire d'enfants et d'adolescents d'une chorale dirigée par l'instituteur du village et celle de leurs familles : le baron, le régisseur du domaine, le pasteur, le médecin, la sage-femme, les paysans... D'étranges accidents surviennent et prennent peu à peu le caractère d'un rituel punitif. Qui se cache derrière tout cela ?",
  "poster": "http://sokrostream.com/wp-content/uploads/2013/09/1367017617_face.jpg",
  "genres": [
    "Drame"
  ],
  "country": "Français",
  "releaseYear": 2009,
  "quality": "DVDRip"
}
我正在使用mongoose进行查询,但是下面的查询返回null

collection.findOneAndUpdate({ "customID": 80074 }, { $inc: { "views" : 1 } }, cb)
请注意,当我使用除
customID
以外的任何东西时,它都可以工作。例如,下面的查询确实有效

collection.findOneAndUpdate({ "name": "Le Ruban blanc" }, { $inc: { "views" : 1 } }, cb)
我希望您能看到这个问题,几天前我刚刚开始使用
mongoDB
&
mongoose
,所以这个错误可能是非常基本的。非常感谢您的帮助

如前所述,以下是模式:

new mongoose.Schema({
name: {type: String, required: true},
customID: {type: String, required: true, unique: true},
description: {type: String, default: 'No description available'},
poster: {type: String, default: 'default'},
genres: {type: [String], default: ['Unknown']},
country: {type: String, default: 'Unknown'},
releaseYear: {type: Number, default: 2000},
quality: {type: String, default: 'HD-720p'});
这是猫鼬的完整代码:

collection.findOneAndUpdate({"customID": 80074},
    { $inc: { "views" : 1 } },
    {projection: projection},
    (err, element) => {
        if (err) return res.status(400).send(err);
        res.status(200).send(element);
    });

在您的模式中有
customID:{type:String}
。而您正试图在其中找到一个
整数

请将
customID
的类型更改为
Number
类似
customID:{type:Number}


正确定义模式非常重要

你能给猫鼬看看吗code@AzoulayJason你是指模式吗?如果是这样,那么它与示例对象几乎相同。至于在这里调用db的代码是:collection.findOneAndUpdate({“customID”:80074},{$inc:{“views”:1},{projection:projection},(err,element)=>{if(err)return res.status(400).send(err);res.status(200.send(element);});我猜他是在要求mongoose模式定义,请为上述集合添加mongoose定义。这样:@RaghavGarg我用相关的代码片段编辑了我的问题,如果我需要添加其他内容,请告诉我。@RaghavGarg非常感谢,我的错,我应该验证模式。