如何用mongoose中的elemMatch查询?

我试图根据下面的mongodb查询在我的mongodb集合中查询用户:

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

这个工程,如果我直接用mongodb查询。 它返回任何具有a =“foo”和b =“bar”的盒子的用户。

我怎样才能在mongoosejs中查询这个? 我试过使用User.find().elemMatch但它不起作用。 这似乎只是预测结果。 原始的mongodb查询确实对我有用,但我只需要能够将其复制到mongoosejs中即可。 有任何想法吗?

mongooseelemMatch的文件在这里 。
我没有testing过,但看起来你会想要做的

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

Tim的回答是正确的,但是如果有人对mongo native api产生的查询产生混淆,我用这个来解释

mongoose.set('debug', function (coll, method, query, doc) { console.log(coll + " " + method + " " + JSON.stringify(query) + " " + JSON.stringify(doc)); });