MongoDB/Mongoose で "where $in" クエリを実行しようとしていますが、配列内のタグごとに 1 つの結果のみが返されます。のような並べ替え:
db.images.find( { hashtag : { $in : ['tag1', 'tag2', 'tag3'] } } );
そして、3 つの固有の結果が返されます。指定したタグのセットからそれぞれ。
[{name:'image1', hashtag:'tag1'},
{name:'image55', hashtag:'tag2'},
{name:'image99', hashtag:'tag3'}]
SQL では GROUP BY のようなものを使用しますが、MongoDB では Map/Reduce を行わないと同等のものを見つけることができません。
とにかくそれをするのですか?ありがとう。
--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();