MongoDB: альтернатива запроса для глубоко встроенных документов?

У меня есть этот документ в моем mongoDB:

/* 0 */
{
    "bookTitle" : "HTML",
    "bookOrder" : 500,
    "_id" : ObjectId("530dea1d2dbf280000533b60"),
    "bookChapters" : [ 
        {
            "chapterTitle" : "chapterTitle",
            "chapterIntro" : "ChapterIntro",
            "chapterOrder" : 500,
            "_id" : ObjectId("530dea1d2dbf280000533b61"),
            "chapterArticles" : [ 
                {
                    "articleTitle" : "articleTitle",
                    "articleIntro" : "articleIntro",
                    "articleOrder" : 500,
                    "_id" : ObjectId("530dea1d2dbf280000533b62"),
                    "articleHeadings" : [ 
                        {
                            "headingTitle" : "headingTitle",
                            "headingOrder" : 500,
                            "_id" : ObjectId("530dea1d2dbf280000533b63")
                        }
                    ]
                }
            ]
        }
    ],
    "__v" : 0
}

Чтобы.find() значение глубоко внедренного поля "headingTitle", я должен использовать этот запрос:

/*
 db.bookcollections.findOne({"bookChapters.chapterArticles.articleHeadings.headingTitle":"headingTitle"}, {"bookChapters.chapterArticles.articleHeadings.headingTitle":1}).bookChapters[0].chapterArticles[0].articleHeadings[0].headingTitle

*/

Относительно лучших практик:

  1. Разве это не очень многословно?
  2. Это правильное использование?
  3. Должен ли я переосмыслить структуру моего документа?

0 ответов

Другие вопросы по тегам