私は何をしたいのか分からない。私のスキーマは次のようなものです:mongooseに対して値の配列を検索する
var userObj = mongoose.Schema({
'timestamp':{type: Date, default: Date.now()},
'password':{type:String, required:true},
"userName":{type:String, required:true, unique:true}
});
var groupSchema = mongoose.Schema({
'creator':String,
'members':Array, //contains the _id of users added to the group
'admins':Array,
'name':String,
'timestamp':{type: Date, default: Date.now()},
'description':String
});
ここで、メンバースキーマはユーザーのIDを含む配列を持っています。グループ文書から配列を取り出し、ユーザー名を取得する必要があります。
私はmongoose .find()メソッドを使用してループを開始し、結果を配列にプッシュしましたが、配列がコールバック関数の範囲外で空であると予想しました。
var dat = [];
for(var i = 0; i<passed.payload.length;i++){
user.find({'_id':passed.payload[i]},'userName',function(err,result){
if(err){
console.log(err);
}else{
dat.push(result);
}
})
}
//res.send(dat)
console.log(dat);
私はこれを行う方法を確認していない - 私は、唯一の一致したバックを返すための配列を実行しているすべてのユーザーIDを引っ張って.find使用して考えました。これは、フルユーザーテーブルを取得してからテストするためのリソースの浪費のようです。
mongooseで照合する_idsの配列を使用してこのようなデータを取得するために使用できるより複雑なクエリがありますか?
はい、そうでした。私は学ぶことを学ぶこと以外はほとんど気が気にならない、それは学ぶのは良いことだった、私はそれを見たが、その使い方を誤解した。ありがとう! – grishrl