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

在一个MongoDB文档中获取两个数组中的唯一值

贺景胜
2023-03-14
本文向大家介绍在一个MongoDB文档中获取两个数组中的唯一值,包括了在一个MongoDB文档中获取两个数组中的唯一值的使用技巧和注意事项,需要的朋友参考一下

要在文档的两个数组中获取唯一值,请在aggregate()中使用$setUnion。的$setUnion采用两个或多个阵列,并返回包含出现在任何输入数组元素的数组。

让我们创建一个包含文档的集合-

>db.demo608.insertOne({"ListOfName1":["John","Chris","Bob","David"],"ListOfName2":["Bob", "Sam","John","Robert","Chris"]}
... );
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e974542f57d0dc0b182d62b")
}

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

> db.demo608.find().pretty();

这将产生以下输出-

{
   "_id" : ObjectId("5e974542f57d0dc0b182d62b"),
   "ListOfName1" : [
      "John",
      "Chris",
      "Bob",
      "David"
   ],
   "ListOfName2" : [
      "Bob",
      "Sam",
      "John",
      "Robert",
      "Chris"
   ]
}

以下是查询以在一个MongoDB文档中的两个数组中获取唯一值-

> db.demo608.aggregate([
...    {$project:{SetOfNames:{$setUnion:['$ListOfName1','$ListOfName2']}}}
... ]).pretty();

这将产生以下输出-

{
   "_id" : ObjectId("5e974542f57d0dc0b182d62b"),
   "SetOfNames" : [
      "Bob",
      "Chris",
      "David",
      "John",
      "Robert",
      "Sam"
   ]
}
 类似资料:
  • 我是新的MongoDB,并试图从数据库检索单个文档的大小。 数据库名为“”集合名为“” 我试过: 我也尝试过: 但它只返回。如何获取文档的大小?非常感谢。

  • 问题内容: 如何获得数组中唯一值的列表?我是否总是必须使用第二个数组,或者是否有类似于JavaScript中Java哈希表的东西? 我将仅使用 JavaScript 和 jQuery 。不能使用其他库。 问题答案: 由于我在@Rocket答案的注释中继续进行了讨论,因此我不妨提供一个不使用任何库的示例。这需要两个新的原型函数,并且 为了提高可靠性,可以用MDN的垫片代替,并检查每个元素的值是否等于

  • 本文向大家介绍写一个方法获取指定数组中间的值(一个或者两个)相关面试题,主要包含被问及写一个方法获取指定数组中间的值(一个或者两个)时的应答技巧和注意事项,需要的朋友参考一下

  • 我使用的是,我希望当我获得一个包含引用字段的文档时,将引用字段作为一个文档接收,而不是作为对该文档的引用... 我有一个用户集合和一个类集合(在学校),每个类都包含一个对用户(这门课的学生)的引用列表。当我使用(通过引用获取类)时,它返回一个包含(用户的)列表的对象,因此我需要再调用大约20次,以便将用户作为对象获取,而不是作为对它们的引用获取。 我希望能够调用一次,它将为我带来作为文档的所有引用

  • 我有两个如图所示-和。我正在比较这两个值,并从中找到唯一的和重复的值,如下代码所示: 我正在正确获取,但没有获取唯一值。

  • 我有一份这样的文件 上面的文档可以这样概括如下,便于理解。 我需要增加nums子文档中数量的值,该值位于产品子文档中,基于其\u id。 这是我迄今为止所尝试的,但它不起作用,因为我不知道如何捕获nums对象内的\u id,以便更新子子文档数组中的特定对象。 我怎样才能做到这一点?