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
*/
Относительно лучших практик:
- Разве это не очень многословно?
- Это правильное использование?
- Должен ли я переосмыслить структуру моего документа?