2017-09-28 1 views
0

私はソーシャルネットワークを設計しようとしており、user.friends_listという文字列を持つUserスキーマを持っています。コードを実行すると、結果は私が期待するものではありません。それは私にfriends_listにあるメンバーのいくつかを返す。

user.friends_list mongoシェルでクエリを実行すると、友だちリストが正確に表示されるはずです。

module.exports.getMembersWithouFriends = function(user, callback) { 
    User.find({ username: { $nin: user.friends_list } }, callback) 
} 

モンゴシェル

> db.users.find({'username':'mm'}).pretty() 
{ 
     "_id" : ObjectId("59cc1abbf8362823385cb2a9"), 
     "first_name" : "mm", 
     "last_name" : "mm", 
     "email" : "[email protected]", 
     "username" : "mm", 
     "password" : 
     "posts" : [ ], 
     "friends_list" : [ 
       "roy", 
       "david", 
       "rr", 
       "dd", 
       "shahar", 
       "mm" 
     ], 
     "__v" : 0 
} 

私はモンゴから取得していた結果をログ慰めるとき、私は戻って、「ロイ」と「デビッド」を取得しています。

+0

db.users.find({ユーザ名:{$ nin:["roy"、 "david"]}} 'は動作していないとし、" roy "と" david "のドキュメントを返しますか? – Veeram

+0

'User.find({username:{$ nin:user.friends_list}}、callback)'は、 "roy"と "david"の両方を含むドキュメントを返します。それはうまく動作します – KLTR

+0

'user.friends_list.map(x => String(x))'を使用しようとします。 –

答えて

0

このコードはうまく機能していて、問題はデータベースにありました。私は、まだユーザーのDBに残っていた既存のユーザーがいなかった。

関連する問題