首先db.collection.distinct("name");
对我来说还不错,但是问题是,distinct有局限性(结果不能大于最大BSON大小),我需要汇总一下,对吧? / p>
另一件事是,我真的想做与发现过滤结果不同的事情,所以是这样的:
db.collection.find({ name: { $exists: true, $ne: null }, state: "published" });
所以主要思想是从完整集合中保存所有已发布的“名称”值,而在json文件中没有任何限制。
所以我用过:
>cat 1.json
db.collection.distinct("name");
mongo db < 1.json > 2.json
答案 0 :(得分:0)
正确的查询是:
db.collection.aggregate([{{$ match:{name:{$ exists:true,$ ne:null}, 状态:“已发布”}},{$ group:{_ id:null,唯一值:{$ addToSet: “ $ name”}}}]));