これはコードです:
usermodel.findOne({ user: req.session.user }, function (err, user){
usermodel.find({ _id: {$in: user.follow } }, { user: true }, function (err, users){
usermodel.find({ author: { $in: users.user }}, function (err, images){
console.log(users);
console.log(images);
});
});
そしてこれはスキーマです:
var userschema = new mongoose.Schema({
user: String,
follow: [String],
message: [{
title: String,
author: String,
message: String
}],
});
follow
配列には_id
、実際のユーザーがフォローしているユーザーのが含まれています。最初のusermodel.find
yでfollow
配列を取得します。2番目usermodel.find
では、ユーザー名を取得します。
[ { _id: 50fd9c7b8e6a9d087d000006, user: 'Mrmangado' },
{ _id: 50fd9d3ce20da1dd7d000006, user: 'kirbo' } ]
そして、最後から3番目usermodel.find
で、ユーザーのメッセージを取得しようとしています。前のユーザーの名前を取得しましusermodel.find
たauthor
が、メッセージのは作成したユーザーと同じ値です。問題は、ユーザーの名前を取得する方法です。次のようにユーザーの名前を取得する必要があると思います。
[{ user: 'Mrmangado' },
{ user: 'kirbo' }]
このような配列を受け取った場合、$in
ステートメントは完全に機能します。このような出力を取得する方法はありますか...?
よろしくお願いします!