1
私は単に、req.user._idが見つかったすべてのドキュメント(サイト)をサブドキュメント(マネージャ)の配列内に返そうとしています。値が配列内にある文書を返すにはどうすればよいですか? Mongoose.js
ユーザーは複数のサイトを管理できるため、これらの関連するサイトをすべて一覧表示する方法が必要です。
Site.find({}).elemMatch('managers', {_id: req.user._id}).exec((err, sites) => {
if (err) {
console.log(err)
return res.status(500).send('Something went wrong');
}
return res.json(sites)
});
Mongoose elemMatch私は運が無かった。 どこでもドキュメントでこれを見つけることはできませんが、実行する簡単なクエリのようです。ここで
(編集済み)は、サンプル・スキーマおよびドキュメントです:あなたは、クエリのsubdocment以内に到達しようとしているので、
import mongoose from 'mongoose';
var Schema = mongoose.Schema;
const SiteSchema = new Schema({
city: {
type: String
},
siteRef: {
type: String
},
managers: [{
type: Schema.ObjectId,
ref: 'User'
}],
});
export default mongoose.model('Site', SiteSchema);