1. ホーム
  2. node.js

[解決済み] mongooseでelemMatchを使ったクエリを行うには?

2022-02-11 03:40:24

質問

以下のmongodbクエリに基づいて、mongodbコレクション内のユーザーにクエリを発行しようとしています。

db.users.find("boxes":{"$elemMatch":{"a":"foo","b":"bar"}})

これは、私が直接mongodbでクエリを実行すると動作します。a="foo" と b="bar" のボックスを持つユーザをすべて返します。

mongoosejsでこれをクエリするにはどうしたらいいでしょうか?私は User.find().elemMatch が、うまくいきません。どうせ結果を投影しているだけのような気がします。元のmongodbのクエリは動作しているので、mongoosejsでそれを再現できればいいのですが。何かアイデアはありますか?

解決方法は?

mongoose の elemMatch のドキュメントは以下の通りです。 ここで .
テストはしていませんが、次のようなことをしたくなるようです。

User.find().elemMatch("boxes", {"a":"foo","b":"bar"})