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

如何获取 MongoDB 聚合中的子字符串

萧伟兆
2023-03-14
本文向大家介绍如何获取 MongoDB 聚合中的子字符串,包括了如何获取 MongoDB 聚合中的子字符串的使用技巧和注意事项,需要的朋友参考一下

要获取子字符串,请在MongoDB中使用$substr。让我们创建一个包含文档的集合-

> db.demo176.insertOne({"ProductName":"PRODUCT-1"});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e3843a09e4f06af551997ef")
}
> db.demo176.insertOne({"ProductName":"PRODUCT-102"});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e3843a69e4f06af551997f0")
}
> db.demo176.insertOne({"ProductName":"PRODUCT-105"});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e3843aa9e4f06af551997f1")
}

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

> db.demo176.find();

这将产生以下输出-

{ "_id" : ObjectId("5e3843a09e4f06af551997ef"), "ProductName" : "PRODUCT-1" }
{ "_id" : ObjectId("5e3843a69e4f06af551997f0"), "ProductName" : "PRODUCT-102" }
{ "_id" : ObjectId("5e3843aa9e4f06af551997f1"), "ProductName" : "PRODUCT-105" }

以下是在MongoDB聚合中获取子字符串的查询-

> db.demo176.aggregate(
...   [
...      {
...         $project:
...            {
...
...               ProductName: { $substr: [ "$ProductName", 0, 7] }
...
...            }
...      }
...   ]
...)

这将产生以下输出-

{ "_id" : ObjectId("5e3843a09e4f06af551997ef"), "ProductName" : "PRODUCT" }
{ "_id" : ObjectId("5e3843a69e4f06af551997f0"), "ProductName" : "PRODUCT" }
{ "_id" : ObjectId("5e3843aa9e4f06af551997f1"), "ProductName" : "PRODUCT" }

 类似资料:
  • 我想从引用的文档中获取字段值。Mongodb版本是3.4。 假设我有两个收藏foo和bar。Foo提到bar: 相应的条形码文档看起来像这样: 我尝试了以下聚合函数来归档此结果: 聚合功能: 但我的结果是这样的: 我试着用谷歌搜索它,我查看了mongodb文档,但没有找到解决方案。 是我错过了什么还是这不可能? 谢谢

  • 我必须在弹性搜索中使用聚合执行搜索。因为刻面将在不久的将来被删除,所以我不能使用刻面。 当然,我被鼓励使用聚合。 下面的代码给了我想要的输出: 聚合聚合=elasticsearch chTemplate.query(搜索查询,新的结果提取器(){@覆盖公共聚合提取(搜索响应响应){返回response.get聚合(); 但问题是,它成为了我的弹性搜索查询之外的第二个查询,这使得它变得非常慢。 我正

  • 我需要返回带有mongoDB聚合的字符串数组。我做了以下操作: 它返回: 有没有一种方法可以返回像这样的字符串数组: 非常感谢任何花时间帮助我的人。。 编辑 添加数据:

  • 问题内容: 有没有一种方法可以在Python中对字符串进行子字符串化,以从第三个字符到字符串末尾获取新的字符串? 也许喜欢吗? 如果离开第二部分意味着“直到最后”,而如果离开第一部分,它是否从头开始? 问题答案: Python称这个概念为“切片”,它不仅适用于字符串,还适用于更多的领域。看看这里的一个全面的介绍。

  • 我试图解决的用例是: 查找 /apps.下所有组件的所有页面引用 i、 e.首先查找正在使用组件的所有页面,然后对/apps下的所有组件执行此操作。 通过使用Adobe AEM的报表生成器工具:https://adobe-consulting-services.github.io/acs-aem-commons/features/report-builder/configuring.html 查询

  • 我知道一般来说,我们需要做类似的事情才能在Spring data中从mongoDB获取文档: 定义一个类并用@Document:注释它 MongoOps.findById(p.getId(), Person.class); 问题是在运行时我不知道文档的类类型,我只有它的字符串集合名称和它的字符串ID。如何使用SpringData检索文档?类似于这样: 结果对象类型并不重要,它甚至可以是一个对象,我