首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >在MongoDB嵌套数据中查找字段名

在MongoDB嵌套数据中查找字段名
EN

Stack Overflow用户
提问于 2022-03-31 14:19:23
回答 1查看 124关注 0票数 0

是否可能首先使用regex查找“字段名”,然后使用该字段名在所有文档中查找其值?

例如,如果我有以下结构:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
item : Object
  - quantity: 50
  - size: Object
    - h: 20

理想情况下,如果我想要h的值,我会查询item.antity.size.h ("field.nestedField")。然而,我只知道名称'h‘,但不知道它是嵌套在什么之下。是否可以检索整个字段名(item.antity.size.h)及其值(20)?然后,我想使用这个字段名从所有其他文档中获得值。

EN

回答 1

Stack Overflow用户

发布于 2022-04-02 07:05:45

灵感来源:不返回mongoplayground.net中的期望值

可以使用$function聚合,如下所示:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
    db.collection.aggregate([
  {
    $project: {
      data: "$$ROOT"
    }
  },
  {
    "$project": {
      "flattenKeys": {
        "$function": {
          "body": "function flatten(dataList, keysToHandle){while(keysToHandle.length){origKeyData = keysToHandle.shift();for (const newKey of Object.keys(origKeyData.objData)){keysToHandle.push({objData:origKeyData.objData[newKey],keyData:`${origKeyData.keyData}.${newKey}`});dataList.push(`${origKeyData.keyData}.${newKey}`);}}return dataList}",
          "args": [
            [],
            [
              {
                objData: "$data",
                keyData: "data"
              }
            ]
          ],
          "lang": "js"
        }
      }
    }
  },
  {
    $project: {
      matchingKeys: {
        $filter: {
          input: "$flattenKeys",
          as: "item",
          cond: {
            $regexMatch: {
              input: "$$item",
              regex: "keyD"
            }
          }
        }
      }
    }
  }
])

看看它是如何工作的,这里

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71699746

复制
相关文章
java中sql如何嵌套查找_SQL 查询嵌套使用[通俗易懂]
id int primary key auto_increment, — 主键id
全栈程序员站长
2022/09/22
4.3K0
java中sql如何嵌套查找_SQL 查询嵌套使用[通俗易懂]
[PHP] 使用PHP在mongodb中进行嵌套查询
作为文档数据库,数据库中存储的数据是类似json的结构,比如{“modelInfo”:{"status":1,audited:"1"}},想要查询status是1的audited是1的,需要按照下面的结构
唯一Chat
2020/03/19
1.9K0
mongodb 中嵌套数组的且查询
experts:[{expertId:"1",result:"success",......}
一笠风雨任生平
2019/08/02
6.7K0
在Repeater中嵌套使用Repeater
在一般的网站中浏览类别的用户控件通常都位于大多数 ASP.NET 页的左边,它使用户能够按类别快速的查找产品。最近遇到一个客户,因为在他网站上展示的产品并不多,所以要求在原有类别浏览的基础上将产品也加进去。一来更方便,二来加长了左部导航栏的长度使页面更协调。原有的分类导航栏是由Repeater实现的,现在需要在每一个分类下加入该类的商品信息,于是我想到了在原有Repeater中嵌套Repeater。实现界面如下:
全栈程序员站长
2022/09/06
1.5K0
在Repeater中嵌套使用Repeater
MongoDB查找文档
3、查找文档 // 根据条件查找文档(条件为空则查找所有文档) Course.find().then(result => console.log(result)) // 返回文档集合 [{ _id: 5c0917ed37ec9b03c07cf95f, name: 'node.js基础', author: 'wuyuxin‘ },{ _id: 5c09dea28acfb814980ff827, name: 'Javascript', author: 'wuyuxin‘ }]
Qwe7
2022/05/23
2.6K0
MongoDB(10)- 查询嵌套文档
插入测试数据 db.inventory.insertMany( [ { item: "journal", qty: 25, size: { h: 14, w: 21, uom: "cm" }, status: "A" }, { item: "notebook", qty: 50, size: { h: 8.5, w: 11, uom: "in" }, status: "A" }, { item: "paper", qty: 100, size: { h: 8.5, w: 11, uom:
小菠萝测试笔记
2021/06/09
2.1K0
MongoDB(10)- 查询嵌套文档
MongoDB嵌套聚合函数使用
$lookup函数可以用于在同一数据库中的不同集合之间进行关联查询,并将查询结果合并到一个文档中,例如:
玖叁叁
2023/04/14
1.3K0
MongoDB聚合索引在实际开发中的应用场景-嵌套文档的聚合查询
MongoDB 支持嵌套文档,即一个文档中可以包含另一个文档作为其字段。在聚合查询中,可以通过 $unwind 操作将嵌套文档展开,从而进行更灵活的查询和统计。
玖叁叁
2023/04/14
3.5K0
用MongoDB Change Streams 在BigQuery中复制数据
Chang Stream(变更记录流) 是指collection(数据库集合)的变更事件流,应用程序通过db.collection.watch()这样的命令可以获得被监听对象的实时变更。BigQuery是Google推出的一项Web服务,该服务让开发者可以使用Google的架构来运行SQL语句对超级大的数据库进行操作。
MongoDB中文社区
2019/08/26
4.1K0
用MongoDB Change Streams 在BigQuery中复制数据
MongoDB 数组在mongodb 中存在的意义
在MOGNODB 的文档设计和存储中,存在两个部分 1 嵌套 2 数组,所以如果想设计好一个MONGODB 在理解业务,读写比例,查询方式后,就需要介入到更深层次的理解嵌套的查询方式,嵌套多层后的性能问题, 数组其实比嵌套带来更多的问题,所以今天我们的从数组开始。
AustinDatabases
2022/04/05
4.3K0
MongoDB  数组在mongodb 中存在的意义
在Docker中安装MongoDB
1.版本选取 访问mongodb的镜像仓库地址:https://hub.docker.com/_/mongo?tab=tags&page=1 这里选取最新版本进行安装,如果想安装其他的可用版本,可以使
Peyshine
2020/05/19
7.5K0
在Docker中安装MongoDB
一日一技:修改MongoDB集合中的字段名
在我们使用MongoDB的过程中,经常会出现修改数据的情况。我们一般使用 update_one或者 update_many这两个方法。
青南
2019/06/18
2.3K0
在Python中实现线性查找
线性查找算法是最简单的查找算法之一。线性查找算法的输入是一个数组或列表和项,该算法查找数组中是否存在该项。如果找到该项,则返回其索引;否则,可以返回null或你认为在数组中不存在的任何其他值。
fanjy
2022/11/16
3.2K0
在Python中实现线性查找
在MongoDB中模拟Auto Increment
MySQL用户多半都有Auto Increment情结,不过MongoDB缺省并没有实现,所以需要模拟一下,编程语言以PHP为例,代码大致如下所示:
LA0WAN9
2021/12/14
9580
Wiredtiger 在MONGODB 中的疑问
MongoDB 中也有类似MYSQL 的数据库引擎的插件化的概念,虽然MYSQL 被ORACLE 搞得现在对这个数据库的引擎认知都存在于INNODB,但实际上MYSQL 在之前的存储引擎还是丰富多彩的,MONGODB 的存储引擎也是如此,目前MONGODB 主推的(官方)的数据库引擎是 WIREDTIGER ,之前MONGODB 官方的数据库引擎是 MMAP1, 而实际上MONGODB 还有一个数据库引擎脚ROCKS DB,听说是不错,至少和WIRETIGER 平分秋色,甚至略胜一筹。
AustinDatabases
2019/06/21
1.8K0
Wiredtiger 在MONGODB 中的疑问
在MongoDB中实现聚合函数
随着组织产生的数据爆炸性增长,从GB到TB,从TB到PB,传统的数据库已经无法通过垂直扩展来管理如此之大数据。传统方法存储和处理数据的成本将会随着数据量增长而显著增加。这使得很多组织都在寻找一种经济的解决方案,比如NoSQL数据库,它提供了所需的数据存储和处理能力、扩展性和成本效率。NoSQL数据库不使用SQL作为查询语言。这种数据库有多种不同的类型,比如文档结构存储、键值结构存储、图结构、对象数据库等等。 我们在本文中使用的NoSQL是MongoDB,它是一种开源的文档数据库系统,开发语言为C++。它提供
张善友
2018/01/22
3.7K0
Golang 与mongodb的交互。嵌套struct
mongodb这类nosql数据库,还是先定义结构比较好啊。存取方便。蛋疼的是golang定义个嵌套的struct好费劲啊。。 primitive.NewObjectID() 可以生成一个mongodb的_id,找了半天这个函数。网上都是 mgo的函数。好像好久不更新了。mongo-driver是mongodb的官方驱动?所以不用第三方的了吧。
xiny120
2019/07/17
4.8K0
mongodb 字符串查找匹配中$regex的用法
官网地址:https://docs.mongodb.com/manual/reference/operator/query/regex/#regex-case-insensitive
庞小明
2018/12/10
6.2K0
Mongodb多键索引之嵌套文档
接上上一篇文档 Mongodb多键索引之数组,本次继续多键索引,到目前为止还没有分析业务中具体使用方式以及需求,只知道需要使用多键索引来满足不同查询,通过一个多键索引来解决不同谓词过滤,具体能否实现以及到底使用数组、嵌套文档还是数组文档方式?目前都是未知数,所以通过学习官方资料以及实际验证来解决如上2个问题.【能不能以及怎么做问题】,同时引出关键问题性能问题,选择一个能做方式满足业务需求,到底性能如何?
徐靖
2020/08/25
3K0
MYSQL在众多表中查询表名和字段名
SELECT table_name, column_name from information_schema.columns WHERE column_name LIKE 'Name';
大江小浪
2018/07/24
4.1K0

相似问题

MongoDB通过字段名从数组中查找数据

10

Mongodb从嵌套文档中查找数据

10

查找mongodb中嵌套数组对象中存在的重复字段名记录

10

使用$rename在MongoDB中重命名嵌套字段名

12

如何利用“猫鼬”在MongoDB中基于子字段名查找数据?

15
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文