sql >> データベース >  >> NoSQL >> MongoDB

マングースに生息した後に見つける

    @Jason Cust すでにかなりよく説明されています-この状況では、多くの場合、最良の解決策は、Usersのクエリを防ぐためにスキーマを変更することです。 別のコレクションに保存されているドキュメントのプロパティによって。

    これが私が考えることができる最善の解決策ですが、それはあなたにそれを強制することはありません(あなたはコメントであなたができないと言ったので)。

    Users.find().populate({
      path: 'email',
      match: {
        type: 'Gmail'
      }
    }).exec(function(err, users) {
      users = users.filter(function(user) {
        return user.email; // return only users with email matching 'type: "Gmail"' query
      });
    });
    

    ここで行っているのは、emailのみを入力することです。 s一致する追加のクエリ(match .populate()のオプション 電話)-それ以外の場合はemail Usersのフィールド ドキュメントはnullに設定されます 。

    残っているのは.filterだけです 返されたusers 元の質問のように、配列-はるかに単純で非常に一般的なチェックのみを使用します。ご覧のとおり、email あるか、ないか。



    1. RedisでLuaスクリプトの実行時間を決定する方法は?

    2. テンプレートレンダーがpymongo集計変数をテンプレートに渡していない

    3. mongoクエリを高速化する方法

    4. レプリカセットとしてソロMongoDBインスタンスを開始することが本番環境で推奨されないのはなぜですか?