1. ホーム
  2. mongodb

[解決済み] or' 条件を含む MongoDB クエリ

2022-03-07 14:52:07

質問

そこで、グループのメンバーシップを追跡する埋め込み文書があります。 各埋め込み文書には、別のコレクションにあるグループを指す ID、開始日、および 任意 有効期限

あるグループの現在のメンバーを照会したいのですが、quot;Current"とは、開始時間が現在の時間より短く、有効期限が現在の時間より長いか、またはnullであることを意味します。

この条件付きクエリには完全に閉口しています。 2つのクエリを実行して結果をマージすることもできますが、それは醜く、一度にすべての結果を読み込む必要があります。 また、有効期限を遠い将来の任意の日付にすることもできますが、これはさらに醜く、脆くなる可能性があります。 SQLでは、quot;(expires >= Now())と表現すればよいでしょう。OR (expires IS NULL)" -- しかし、Mongoではどうすればいいのかわかりません。

何かアイデアはありますか? ありがとうございました。

どのように解決するのですか?

このページを見つけた人のために、更新しておきます。 1.5.3 で、mongo は本当の $or 演算子をサポートするようになりました。 http://www.mongodb.org/display/DOCS/Advanced+Queries#AdvancedQueries-%24or

あなたのクエリである "(expires >= Now()) OR (expires IS NULL)" は、次のようにレンダリングされます。

{$or: [{expires: {$gte: new Date()}}, {expires: null}]}