2017-09-16 39 views
1

我試圖用mongoose一個mongoDB上班工作,這裏是從DB爲例元素:貓鼬findOne是不工作的一個特定的查詢,卻爲別人

{ 
    "_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" 
} 

我使用的貓鼬我查詢,但以下查詢返回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

你可以顯示貓鼬代碼 –

+0

@AzoulayJason你的意思是模式?如果是這樣的話,它和示例對象幾乎一樣。至於這裏調用db的代碼,它是: collection.findOneAndUpdate({「customID」:80074}, {$ inc:{「views」:1}}, {projection:projection}, (err如果(err)返回res.status(400).send(err); res.status(200).send(element); }); –

+0

我想他是要求貓鼬模式定義,請爲上述集合添加您的貓鼬定義。像這樣:http://mongoosejs.com/docs/guide.html – RaghavGarg

回答

1

架構中的你有customID: {type: String}。而您正試圖在其中找到integer

請更改customID的類型爲Number,如customID: {type: Number}

正確定義模式非常重要。 Read more about schema type