通过 _id 在 mongodb 数据库中的对象数组上查找

2023-12-12

我正在尝试在对象数组中查找对象的 id。该 _id 与文档中其他字段具有相同的字段名称 _id。 这是我的模型(简要)

var CardSchema = new mongoose.Schema({
  beName: String,
  beLink: String,
  cards: [{ 
    cardType: String,
    cardBundle: String
  }]

这是我的数据库内容的示例

_id: ObjectId(5a52540638086448bf4235e8)
beName: Name1
beLink: Link1
cards: Array
 0: Object
    cardType: type1
    cardBundle: 1
    _id: ObjectId(5a526749d0ddab4bcdcc1556)
 1: Object
    cardType: type2
    cardBundle: 1
    _id: ObjectId(5a526749d0ddab4bcdcc1557)

...

_id: ObjectId(5a52540638086448bf4235e9)
beName: Namex
beLink: Linkx
cards: Array
 0: Object
    cardType: typex
    cardBundle: x
    _id: ObjectId(5a526749d0ddab4bcdcc1598)
 1: Object
    cardType: type2
    cardBundle: 1
    _id: ObjectId(5a526749d0ddab4bcdcc1599)

我正在尝试查找特定卡的 ID,如下所示

Cards.find({ _id: req.params.id}, function (err, post) {
    if (err) return next(err);
    res.json(post);
  });

但我得到一个空结果

我也尝试过

Cards.find({ _id: new ObjectId(req.params.id)}...

您可能需要使用aggregate功能为$unwind用于查找匹配卡的卡数组_id.

所以,在猫鼬中而不是find use aggregate管道

样本文档

> db.cards.findOne()
{
    "_id" : ObjectId("5a52f4136fe82b42b7439a21"),
    "beName" : "Name1",
    "beLink" : "Link1",
    "cards" : [
        {
            "cardType" : "type1",
            "cardBundle" : 1,
            "_id" : "5a52f3a66f112b42b7439a20"
        },
        {
            "cardType" : "type2",
            "cardBundle" : 1,
            "_id" : "5a52f3a66f112b42b7439a21"
        }
    ]
}

聚合函数

> db.cards.aggregate([{$unwind: "$cards"}, {$match:{"cards._id" : "5a52f3a66f112b42b7439a20"}}] )

结果文件

> db.cards.aggregate([{$unwind: "$cards"}, {$match:{"cards._id" : "5a52f3a66f112b42b7439a20"}}] ).pretty()
{
    "_id" : ObjectId("5a52f4136fe82b42b7439a21"),
    "beName" : "Name1",
    "beLink" : "Link1",
    "cards" : {
        "cardType" : "type1",
        "cardBundle" : 1,
        "_id" : "5a52f3a66f112b42b7439a20"
    }
}
> 

如果您了解父级,您可以进一步优化它_id,在聚合管道中$match由家长_id, then $unwind, then $match在阵列卡上_id

> db.cards.aggregate([{$match:{"_id":ObjectId("5a52f4136fe82b42b7439a21")}},{$unwind: "$cards"}, {$match:{"cards._id" : "5a52f3a66f112b42b7439a20"}}] )
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

通过 _id 在 mongodb 数据库中的对象数组上查找 的相关文章

  • 如何查找 mongoose 的所有集合

    我应该找到存储在 mongo 数据库中的所有集合 require app models schemas loading application schemas mongoose connect mongodb localhost test
  • Mongo 正则表达式用于“不匹配”或反向[重复]

    这个问题在这里已经有答案了 我的 mongo 文档都包含一个名为templateName 有一些包含该值的文档 a SystemDefaultTemplate b SystemDefaultTemplate c SystemDefaultT
  • 最新 .Net MongoDb.Driver 的连接问题

    我创建了一个 MongoLab 沙箱数据库 我与 MongoChef 连接 效果很好 我通过 Nuget 安装了 MongoDB Driver 2 2 2 我编写了一些简单的 C 演示代码 但就是无法使其工作 连接字符串是直接从 Mongo
  • MongoDB req.body 问题

    我有一个非常简单的 Mongo 设置 如下所示 这非常适合从输入字段获取数据并保存数据 一切都在工作 我的问题 我将如何循环遍历前端的 jobs 变量并设置数据 以便它适用于我的模型 不知何故 我需要将其输入到输入中 以便我可以 req b
  • NodeJS 中的密码重置

    我已经设置使用 NodeJS Passport 更新用户的密码 我遵循了这个很棒的指南 http sahatyalkabov com how to implement password reset in nodejs http sahaty
  • Mongodb聚合管道大小和速度问题

    我正在尝试使用 mongodb 聚合查询来连接 lookup 两个集合 然后对连接数组中的所有唯一值进行不同计数 注意 我不一定知道metaDataMap 数组中有哪些字段 键 我不想计算或包含地图中可能存在或不存在的字段 这就是聚合查询看
  • 如何配置 StrongLoop LoopBack MongoDB 数据源以部署到 Heroku

    我正在使用 LoopBack 版本 1 6 并使用以下数据源配置运行本地 mongoDB 服务器进行开发 mongodb defaultForType mongodb connector loopback connector mongodb
  • MongoDB - 在父文档中填充 GridFS 文件元数据

    我使用 NodeJS 与 Express MongoDB Mongoose 和 GridFS 来上传和检索文件 我想通过 ID 引用其他文档中的文件 并在查询其他文档时填充文件元数据 例如 如果我有一个包含这样的文档的 用户 集合 id O
  • 如何在 MongoDB 中获取连接的客户端

    我正在编写一个使用 mongo 作为数据库的应用程序 我想打印连接到数据库的客户端 例如打印他们的ip 我怎样才能得到这些信息 我尝试使用 db serverStatus connections 但它给了我可以访问我的数据库的计算机数量 您
  • java.lang.IllegalArgumentException:在 MongoDB 中执行聚合的引用无效

    我收集了一份文件 id ObjectId 5ab273ed31fa764560a912f8 hourNumber 21 errorSegments agentName agentX agentName agentY 我正在尝试在 Sprin
  • Spring Data - MongoDB 索引 DBRef

    我正在使用 spring data mongodb 1 2 0 RELEASE 我有两个类 A 和 B 其中 B 引用了 A 并且用 DBRef 进行了注释 Class A Document collection a public clas
  • 下一个和上一个文档

    我正在制作一个图片库 每个图像都有一个 id 当我查看图像时 我想要接下来的 3 个图像和之前的 3 个图像 我怎样才能在 mongodb 查询中得到这个 我认为我可以使用 sort by id 因为这是不可排序的 也许使用mapReduc
  • 是否可以将 mongodb 与 sqlalchemy 一起使用?

    我在中找不到任何有关连接 mongodb 的信息sqlalchemy 的文档 http docs sqlalchemy org en latest 和谷歌搜索 是否可以将 mongodb 与 sqlalchemy 一起使用 谢谢 根据 sq
  • 如何在猫鼬中使用聚合

    如何在 mongoose 中定义以下 MongoDB 聚合查询 db contacts aggregate group id code Code name Name 查询的目的是获取不同代码和名称的列表 我当前的模型代码是 use stri
  • 从 mongo shell 查找 mongoDB 上 2 个文档之间的差异

    我正在使用 mongodb 2 4 4 我想比较 2 个文档 然后仅使用 mongo shell 打印它们的差异 有没有办法比较它们 就像是 db collection compare first doc objectID blablalb
  • 按日/月分组,并取 mongo 中当天/月评分的平均值

    我在 mongodb 中有这些数据 rating 4 ceatedAt ISODate 2016 08 08T15 32 41 262 0000 rating 3 createdAt ISODate 2016 08 08T15 32 41
  • 在 config.js 中打开 admin 以查看服务器统计信息

    拉动后运行此命令 docker run d p 27017 27017 e MONGO INITDB ROOT USERNAME admin e MONGO INITDB ROOT PASSWORD password name mongod
  • mongo docker 镜像创建后未运行脚本

    我使用 docker compose 为前端 后端和 mongo 实例创建 3 个不同的容器 其中三个正在运行并在它们之间连接 但我需要在 mongo 实例运行后立即在数据库上创建一个管理员用户 根据 mongo 图像文档 每个脚本位于do
  • 将 mongo 数组转换为具有键值对的对象

    我有一个包含字符串数组的 mongo 文档 我需要将这个特定的字符串数组转换为包含键值对的对象数组 以下是我目前的做法 id ObjectId 57e3720836e36f63695a2ef2 platform A1 available C
  • 使用 PyMongo 将 MongoDB find() 返回序列化为非匿名 JSON 数组

    我的 Python 代码查询 MongoDB 并返回an array以下对象 u attribute u value u id ObjectId 534776c66e5987041f6154bd 我想要实现的是返回以下 JSON mycol

随机推荐

  • GWT Cell树,如何使用?

    有人可以解释一下如何使用 GWT 单元树吗 我正在尝试谷歌搜索 但没有找到任何有价值的教程 Thanks Try 谷歌示例 1 包括 onModuleLoad 方法
  • 在 Windows XP 下运行 Python 二进制文件

    我将 PySide 应用程序编译为 x32 和 x64 模式 并且它可以在 Windows 7 下工作 但是我发现该应用程序无法在Windows XP下启动 我应该在规范文件中另外使用一些技巧吗 当前的 PyInstaller 脚本在 ap
  • 如何在Excel中使用VBA截断数字而不是四舍五入?

    我需要创建一个表 操作员可以在其中输入数字 这是受保护的工作表 因此操作员无法更改任何内容 他们只能在特定单元格中输入数字 适用于 Mac 的 Microsoft 365 我需要 Excel 显示 2 位小数而不进行四舍五入 例如 对于 3
  • 涉及填充位置的广播问题

    介绍 我有一个函数func这是可矢量化的 我使用它对其进行矢量化np frompyfunc 而不是使用嵌套for循环 我只想调用它一次 因此我需要用以下内容填充输入np newaxis s 我的目标是摆脱两个嵌套for循环并使用numpy
  • cellForRowAtIndexPath:尝试访问数组 objectAtIndex:indexPath.row 时崩溃

    我正在将数据加载到UITableView 从一个习惯UITableViewCell 自己的班级和笔尖 它工作得很好 直到我尝试访问objectAtIndex indexPath row对于一些数组 我先发布我的代码 这样你可能会更容易理解我
  • 在 vb.net 中填充下拉列表

    我有一个从 SQL Server 数据库填充的下拉列表 填充列表不是问题 但有谁知道如何填充列表项的值部分
  • Facebook数据库设计?

    我一直想知道Facebook是如何设计好友用户关系的 我认为用户表是这样的 user email PK user id PK password 我用用户的数据 性别 年龄等通过用户电子邮件连接我假设 计算表格 它如何将所有朋友连接到该用户
  • “MariaDB 与许多客户端合作将 Microsoft SQL 和 Oracle 迁移到 MariaDB”的含义

    https mariadb com blog getting microsoft sql server data mariadb connect storage engine 谁能告诉我上面这句话是什么意思 MariaDB 与许多客户合作
  • Linux 脚本选择菜单

    我需要使用 select 循环和 case 指令创建一个包含六个选项的选择菜单 但不是菜单选项的 ECHO 命令 它们必须显示如下 1 opt1 2 opt2 3 opt3 4 opt4 5 opt5 6 opt6 并且不喜欢 1 opt1
  • 选择除了 BeautifulSoup 中某些类的 div 之外的所有 div

    正如中所讨论的这个问题一个人可以轻松得到所有div具有某些类别 但在这里 我有一个我想要排除的类列表 并且想要获取列表中没有给出任何类的所有 div For i e classToIgnore class1 class2 class3 现在
  • 保护 PHP 的 Web 服务

    我正在 android 中开发一个小项目 它使用 php webservices 的调用 我希望我的网络服务受到保护 但是通过使用 GET POST 请求方法 我认为它没有受到太多保护 经过谷歌搜索后 我在 phpseclib 中找到了 R
  • 用python调用同一个类中的变量

    我试图在同一类的另一个函数内调用函数中定义的变量 但使用self不起作用 class Project def function1 self a hello world def function2 self b self a I am ali
  • jqgrid动态列和json数据[重复]

    这个问题在这里已经有答案了 我新了解了 jqgrid 我想通过动态数据和列创建网格 我问我的问题并阅读此内容link但我需要更多例子 在评论中我的答案在您之前的回答中 我简短地描述了如何根据服务器返回的数据更改列标题的想法 为了让大家更清楚
  • Javascript查找两个数组中缺失元素的索引

    我有以下 JavaScript 其中有一些列表 var deleteLinks remove button remove from cart deleteLinks on click function ev ev preventDefaul
  • iOS UITableView contentOffset 当键盘显示时

    我正在尝试设置contentOffset of a tableView当 的时候keyboard被呈现 实际的代码在一个CustomTableView UITableView
  • 我可以使用 SimpleXML 和 Xpath 直接选择元素属性吗?

    即 我想使用 xpath 表达式 banana color 和以下示例 xml 返回字符串 yellow
  • 加密将捆绑在 pyexe 文件中的 Sqlite db 文件

    我一直致力于开发这个分析工具 以帮助解释和分析软件包中捆绑的数据库 对我们来说 以只能通过我们的软件访问的方式保护数据库非常重要 在 Python 中实现它的最佳方法是什么 我知道可能没有最终的解决方案 但威慑才是真正重要的 非常感谢 有人
  • 小数和整数的自定义模型绑定器:如何在 MVC 之前获取字符串值并进行更智能的转换

    我想扩展默认模型绑定 使其在处理数字时更加智能 当游戏中出现逗号和小数点时 默认设置效果非常糟糕 我正在尝试做一个新的活页夹 Public Class SmartModelBinder Inherits DefaultModelBinder
  • 使用 Rails/Jquery 创建动态更新的进度条?

    这是我的第一个 一般 问题 我不是在寻找任何人为我编写一行代码 我只需要一些建议 我正在寻找一种方法来实现进度条 温度计 最好是在 jquery 中 当用户在我的 Rails 应用程序中将数据输入表单时动态更新 我不关心表单字段的值 只关心
  • 通过 _id 在 mongodb 数据库中的对象数组上查找

    我正在尝试在对象数组中查找对象的 id 该 id 与文档中其他字段具有相同的字段名称 id 这是我的模型 简要 var CardSchema new mongoose Schema beName String beLink String c