我正在尝试在 MongoDB/Mongoose 中执行“where $in”查询,我只想为数组中的每个标签返回一个结果。有点像:
db.images.find( { hashtag : { $in : ['tag1', 'tag2', 'tag3'] } } );
我会得到三个独特的结果;每个来自我指定的一组标签。
[{name:'image1', hashtag:'tag1'},
{name:'image55', hashtag:'tag2'},
{name:'image99', hashtag:'tag3'}]
在 SQL 中,您会使用 GROUP BY 之类的东西,但如果不执行 Map/Reduce,我无法在 MongoDB 中找到等价物。
无论如何要这样做?谢谢。
--edit 我想要的等效 SQL 是:
SELECT * FROM images WHERE hashtag in ('tag1', 'tag2', 'tag3') GROUP BY hashtag;
或者理想情况下,虽然 MongoDB 没有随机
SELECT * FROM images WHERE hashtag in ('tag1', 'tag2', 'tag3') GROUP BY hashtag ORDER BY rand();