当前位置: 首页 > 编程笔记 >

MongoDB中检查数组中是否有重复项

井轶
2023-03-14
本文向大家介绍MongoDB中检查数组中是否有重复项,包括了MongoDB中检查数组中是否有重复项的使用技巧和注意事项,需要的朋友参考一下

要检查数组中的重复项,请在MongoDB中使用Aggregate()。让我们创建一个包含文档的集合-

> db.demo756.insertOne({"SubjectName":["MySQL","MongoDB","Java"]});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5eb01e0d5637cd592b2a4add")
}
> db.demo756.insertOne({"SubjectName":["MongoDB","MySQL","MongoDB","C","C+","MySQL"]});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5eb01e2b5637cd592b2a4ade")
}

在find()方法的帮助下显示集合中的所有文档-

> db.demo756.find();

这将产生以下输出-

{ "_id" : ObjectId("5eb01e0d5637cd592b2a4add"), "SubjectName" : [ "MySQL", "MongoDB", "Java" ] }
{ "_id" : ObjectId("5eb01e2b5637cd592b2a4ade"), "SubjectName" : [ "MongoDB", "MySQL", "MongoDB", "C", "C+", "MySQL" ] }

以下是检查数组中重复项的查询-

> db.demo756.aggregate([
...    {"$project": {"SubjectName":1}},
...    {"$unwind":"$SubjectName"},
...    {"$group": {"_id":{"_id":"$_id", "Name":"$SubjectName"}, "count":{"$sum":1}}},
...    {"$match": {"count":{"$gt":1}}},
...    {"$group": {"_id": "$_id._id", "SubjectName":{"$addToSet":"$_id.Name"}}}
... ])

这将产生以下输出-

{ "_id" : ObjectId("5eb01e2b5637cd592b2a4ade"), "SubjectName" : [ "MongoDB", "MySQL" ] }

 类似资料:
  • 问题内容: 我确信这是一个非常明显的问题,并且确实有一个函数可以执行此操作,但是我似乎找不到它。在PHP中,我想尽可能有效地知道数组中是否有重复项。我不想像删除它们一样,并且我也不希望运行并将其与原始数组进行比较以查看它们是否相同,因为这似乎效率很低。就性能而言,“预期条件”是该阵列没有重复项。 我只想做类似的事情 我有没有想到的明显功能? 具有正确的标题,并且是一个非常相似的问题,但是,如果您实

  • 问题内容: 我现在用来检查此功能的函数如下: 有用。我正在寻找的是是否有更好的方法来做到这一点。 问题答案: ECMAScript 2016 包含一种专门用于解决问题的数组方法,因此现在是首选方法。 _从2018年7月开始,如果您需要支持IE,则可以在polyfill中使用几乎所有 主流 浏览器。 编辑:请注意,如果数组中的项目是一个对象,则返回false。这是因为相似的对象是JavaScript

  • 我想检查我的数组是否包含值输入,我想要类似的东西,有人知道如何做吗?

  • 我下面有这些代码,如何检查是否为空? 如果我将,它显示此[] 如何检查数组是否为空,然后显示消息“This is empty”? 我试过了,但效果不好。即使它大于或小于0,也将始终显示“2”

  • 这可能吗?如果可能,我该如何正确地做到这一点?希望能够检查它是否包含1和2,如果是,继续与程序。

  • 我使用in_array查看$appid是否包含在变量$r中。这是我对数组$r的print_r(数组中的appids总是在变化): $appid等于$r数组中包含的263920,但尽管满足标准,“它可以工作”,但没有得到响应。任何帮助都将不胜感激,因为我不明白我的php语句有什么缺陷。