検索

ホームページ  >  に質問  >  本文

ユーザーがログインしているときにユーザーに固有の合計値を返します。

タイトルにあるように、ログイン時にユーザーから特定のデータを取得し、すべてのデータを集計して、集計されたデータを返そうとしています。 $match 関数を使用してみましたが、うまくいきませんでした。イライラするのは、オブジェクト配列内のすべてのデータを正常に返すことができることです。具体的には、次のコードは正常に実行され、オブジェクトの配列を返します:

リーリー

しかし、このコードはそうではなく、空の配列を返します:

リーリー

なぜこれが起こっているのかわかりません。返されるべきものは、すべての集計データが格納されたオブジェクトを含む配列です。

また、$match を削除すると、実行中のコレクション内のすべてのデータが正常に集約されることもわかっているので、それと関係があると思います。

関連するコードはすべて次のとおりです:

ああああ

P粉470645222P粉470645222244日前575

全員に返信(1)返信します

  • P粉722409996

    P粉7224099962024-03-23 10:52:36

    そこで、rickhg12hs の助けを借りて、{match: { user : req.user.id } } が文字列と ObjectId を比較しようとしていると判断できました。 、これは機能しません。これは、私が設定した API がユーザー ID を ObjectID としてではなく文字列として返すためです。正しい値の型 (この場合は ObjectID) を比較していることを確認するには、次のようにします。 リーリー

    返された文字列を取得して新しい ObjectID に変換します。現在 ObjectID を比較しているため、機能します。

    どうやらそれはずっと

    ドキュメント にあったようですが、私が十分に注意深く見ていなかっただけです

    返事
    0
  • キャンセル返事