Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mongodb 如何查找具有一些键且没有重复值的文档?_Mongodb - Fatal编程技术网

Mongodb 如何查找具有一些键且没有重复值的文档?

Mongodb 如何查找具有一些键且没有重复值的文档?,mongodb,Mongodb,我有一个文档基隆,它有一个带有6个对象的数组电影 我想查找文档db.getCollection('Keelung')。查找({}),但在enName中没有重复的值 例如,如果有两个enName值为Truth或Dare,我的查询命令将返回5个对象 我不知道如何实现它,试试db.getCollection('Keelung')。find({enName:true,dropDups:true})显然是不对的 有没有办法在mongodb中实现它?或者我应该在前端过滤它 任何帮助都将不胜感激。提前谢谢

我有一个文档
基隆
,它有一个带有6个对象的数组
电影

我想查找文档
db.getCollection('Keelung')。查找({})
,但在
enName
中没有重复的值

例如,如果有两个
enName
值为
Truth或Dare
,我的查询命令将返回5个对象

我不知道如何实现它,试试
db.getCollection('Keelung')。find({enName:true,dropDups:true})
显然是不对的

有没有办法在mongodb中实现它?或者我应该在前端过滤它

任何帮助都将不胜感激。提前谢谢

根据@Sergio suggest和我的谷歌搜索
$addToSe

db.getCollection('Keelung').aggregate([
  { $unwind: '$data' },
  { $group: { _id: '$_id', movie: { $addToSet: '$enName' } } }
]);
什么也没发生,我不知道如何在这个命令中使用find query…

您需要在这里进行聚合

db.getCollection('Keelung').aggregate([
  { "$unwind": '$movie' },
  { "$group": {
    "_id": "$movie.enName",
    "data": {
      "$push": {
        "field1": "$field1",
        "field2": "$field2",
        ...
      }
    }
  }}
]);

这可能可以通过聚合管道及其
$group
阶段完成。感谢Anthony,它可以进行筛选。我将尝试找出$group$push$REWIND