Мой документ выглядит следующим образом:Как получить динамический атрибут на основе других атрибутов документа?
{
draft: "<draft_content>",
published: "<published_content>"
}
Когда я обновить документ, я обновляю только "draft"
ИЛИ как "draft"
и "published"
. Так документ может выглядеть следующим образом:
{
draft: "B",
published: "A"
}
or
{
draft: "B",
published: "B"
}
Что мне нужно, чтобы получить все документы с информацией, если draft === published
, без фактического возвращения draft
и published
поля. В SQL я бы сделал следующее:
select (draft = published)::boolean as is_published from documents;
Возможно ли это сделать в MongoDB?
Я думал также о хранении isPublished: true/false
флага в каждом документе, но когда я обновление draft
не представляется возможным определить, если draft
отличается от published
или нет. Например, если у меня был документ {draft: "A", published: "A", isPublished: true}
, то его обновление с {draft: "A", isPublished: false}
изменило бы статус isPublished, хотя черновик был таким же, как опубликованный ...
Итак, кажется, что если я хочу избежать получения «черновиков» и «опубликованных», мне придется вычислить и сохранить хэш каждого из них для сравнения на стороне клиента. – user606521