でサブドキュメントを取得するために、どのように私は自分のデータベースにMongoのコレクションを持っている:このマングーススキーマによって構築したはマングース
[
{
"_id": "59955bb0cd522a00bcaab08c",
"lang": "en",
"__v": 0,
"message_subsets": [
{
"identifier": "errors",
"_id": "59955bb0cd522a00bcaab08d",
"messages": [
{
"identifier": "invalid",
"message_text": "$FIELD$ is invalid",
"_id": "59955bb0cd522a00bcaab091"
},
{
"identifier": "empty",
"message_text": "$FIELD$ is required",
"_id": "59955bb0cd522a00bcaab090"
}
]
}
]
},
{
"_id": "59955bb0cd522a00bcaab08c",
"lang": "ru",
...
]
:
const MessageSchema = new mongoose.Schema({
identifier: {
type: String,
unique: true,
required: true,
trim: true
},
message_text: {
type: String,
required: true,
trim: true
}
});
const MessageSubsetSchema = new mongoose.Schema({
identifier: {
type: String,
unique: true,
required: true,
trim: true
},
messages: [MessageSchema]
});
const LangMessageSetSchema = new mongoose.Schema({
lang: {
type: String,
unique: true,
required: true,
trim: true
},
message_subsets: [MessageSubsetSchema]
});
は私がmessage_subsets
配列からすべてのmessages
を取得したいです親が"lang": "en"
の場合は"identifier": "errors"
のアイテムです。 私はモンゴースとモンゴにちょっと新しいので、私はそれにこだわりました!!!そのデータクエリを適切にする手助けができますか?ありがとう。
に一致当たり全
messages
messages
一つにアレイをマージします。私はメッセージの配列だけを取得したいと思います。 – bashkovpd@bashkovpd私は更新しました。投影と呼ばれています:https://docs.mongodb.com/manual/reference/operator/projection/positional/ – Lazyexpert
うーん...私は何か間違っていますが、そのクエリは主な親要素の_idのみを返します( 'lang '指定された)。 – bashkovpd