2016-04-04 9 views
0

mongodbを使用して、mongodbデータベースでユーザーのtwitterタイムラインを取得するアプリケーションを作成しています。私はtwitterから得たツイートが既にデータベースに存在するかどうかを確認したいので、mongodbを使用します。 find()機能。値が存在するかどうかをテストするには?

全体の機能は、このようなものです:

db.collection.find({'twitterIAlreadyStored.id_str': newTweet.id_str} 

は、その後、私はある論理的なコードを書きたい:だから結果かどうかをテストするにはどのような方法があるかどうか、私は疑問に思って

if(exist){ 
} else { 

} 

見つかったかどうか?

+0

'db.collection.find({'twitterIAlreadyStored.id_str':newTweet.id_str})。length()!== 0'? – lascort

答えて

2

db.collection.findは、mongo shellを使用している場合にのみ機能します。 mongooseというタグが付いているので、あなたの後にはmongoose個のクエリがあります。設定したと仮定します。

:あなたの model名前が twitterIAlreadyStored

あるとpropertyあなたがid_str

に見ているあなたを見つけるためにしようとしているvalueが、これはフォローする形式となりnewTweet.id_str

であると仮定すると

var mongoose = require('mongoose'); 

mongoose.model('MODELNAME').findOne({'PROPERTY': 'VALUE'}, function(error, exist) { 
    if(exist && !error){ 
    //do something 
    } else { 
    //IF YOU ARE USING EXPRESS.JS, YOU MUST USE RES.SEND() or RES.END() TO TERMINATE THE CONNECTION 
    res.status(500).send({"message" : "Not Found"}); 
    return; 
    } 
}; 

express.js doc res.send()and res.end()

+0

ありがとう、あなたの答えはいくつかの編集で私の質問を解決する.. –

関連する問題