2016-10-29 3 views
0
var LINK = mongoose.model('link', { 
    id: mongoose.Schema.Types.ObjectId, 
    linkA: Boolean, 
    linkB: Boolean, 

}, 'link') 

経由で保存した値(ここでは参照としてLINKのモデル)を返します。コレクション内のすべてのドキュメントを返す:mongoose.find()クエリは、私だけがマングース

var Test = LINK.find({}, (err, user) => { 
    if (err) console.log("error: " + err) 
    else console.log("users: " + user) 
}, 4000) 

端末のすべてのデータを返します。簡単だよね?

しかし、私は、クエリを使用しようとすると問題が発生:

var Test = LINK.find({linkA:'true'}, (err, user) => { 
    if (err) console.log("error: " + err) 
    else console.log("users: " + user) 
}, 4000) 

最初の(人口のMongoDBのドキュメントが事前にあったにもかかわらず)結果を返しませんでしたでクエリ。しかし、mongooseを介してmongodbにドキュメントを追加した後、追加されたドキュメントにはアクセスできますが、mongodbコンソールで作成されたドキュメントはアクセスできません。

これには理由がありますか?私は間違ってfind()関数を使用している疑いがありますが、ドキュメントがmongooseを介して追加された場合や、空のクエリを使用しているとわかりません。

ご協力いただければ幸いです。おかげさまで

+0

linkAを使用していますか?目的の文字列として検索するには 'true'ですか? –

+0

はい - 私は引用符の有無にかかわらずテストしており、同じ動作をします。 –

+1

https://stackoverflow.com/questions/14183611/mongoose-always-returning-an-empty-array-nodejsの可能な部分。 'link'コレクションではなく' link'コレクションを使っていることを理解してください。 – JohnnyHK

答えて

0

問題は私が情報を格納していた方法でした。

Amiram Korachによって指摘されているように、ドキュメントは誤って引用符でブール値を格納していたので、mongooseはそれを文字列値として認識していました。

関連する問題