Если я могу предложить несколько вариантов:
Posts:
someUniquePostId:
user_id_0: false
user_id_1: true
comment: "dude, awesome post"
user_id_2: false
user_id_3: true
comment: "wicked!"
дискового пространство является дешевым, поэтому сохраняет все пользовательские идентификаторы в пределах поста позволит вам легко выбрать, какие посты user_id_0 не прокомментирован запросом» для user_id_0: false.
В качестве альтернативы вы можете переворачивать логика
Posts:
post_id_0:
user_id_1: "dude, awesome post"
user_id_3: "wicked"
post_id_1:
user_id_0: "meh"
user_id_2: "sup?"
Users:
user_id_0:
no_posts:
post_id_0: true
user_id_1:
no_posts:
post_id_1: true
Это позволит вам запросить какие посты каждый пользователь не отвечал на: в этом случае, user_id_0 не отвечал на post_id_0 и user_id_1 не отвечал на post_id_1
Конечно, в зависимости от ситуации вы также можете опираться на клиентскую логику, чтобы получить нужные вам данные. Например, если вы только заботитесь о том, какие сообщения пользователь не комментировал вчера, вы можете прочитать их запрос по .value вчера и выполнить сравнение в коде, чтобы узнать, является ли их user_id дочерним элементом сообщения. Очевидно, избегая этого, если набор данных большой.