我正在尝试使用mongoDB
使用mongoose
,这是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);
});
答案 0 :(得分:1)
在您的架构中,您拥有customID: {type: String}
。而您正试图在其中找到integer
。
请将customID
的类型更改为Number
customID: {type: Number}
。
正确定义架构非常重要。 Read more about schema type