私はUser model
を定義しました。このモデルには2つのリストがあり、ユーザーが好きな項目の1つと、ユーザーが嫌っている項目の1つです。
1人のユーザーが認定していない(好き嫌いをしていない)項目と、他のユーザーが行った項目のリストが必要です。私はNodeJSのためのマングースライブラリともlodash(_)ライブラリを使用しています、 私のコードは次のようになります。Mongooseを使用したMongoDBの大きなクエリ
function itemsUserHasntQualified(var user){
items = [];
User.find().exec(function(err, users){
for(var user_it: users){
if(user_it != user){
items.push(_.difference(user_it.tracks.liked, user_it.tracks.disliked, user.tracks.liked, user.tracks.disliked);
}
}
});
}
これは、User
のスキーマです:
var UserSchema = new Schema({
name: String,
username: {type: String, lowercase:true },
email: { type: String, lowercase: true },
role: {
type: String,
default: 'user'
},
hashedPassword: String,
provider: String,
salt: String,
facebook: {},
twitter: {},
google: {},
github: {},
tracks: {
liked: [{type:Schema.ObjectId, ref: "Track"}],
disliked: [{type:Schema.ObjectId, ref: "Track"}],
later: [{type:Schema.ObjectId, ref: "Track"}]
}
});
しかし、実際にはIこれが正しい方法ではないと感じています。 これより簡単で正確なクエリ方法がありますか?
スキーマを追加できますか? –
作成したばかりの編集を確認する – sant016