$concat 字段与 $map mongodb 中的索引? [复制]

2023-12-13

我有以下收藏

{
    "_id" : ObjectId("5b16405a8832711234bcfae7"),
    "createdAt" : ISODate("2018-06-05T07:48:45.248Z"),
    "firstName": "Bruce",
    "lastName": "Wayne"
},
{
    "_id" : ObjectId("5b16405a8832711234bcfae8"),
    "createdAt" : ISODate("2018-06-05T07:48:45.248Z"),
    "firstName": "Clerk",
    "lastName": "Kent"
},
{
    "_id" : ObjectId("5b16405a8832711234bcfae9"),
    "createdAt" : ISODate("2018-06-05T07:48:45.248Z"),
    "firstName": "Peter",
    "lastName": "Parker"
}

我需要$project又一个关键索引$concat'INV-00' + 根元素的索引

我的输出应该是这样的

{
    "_id" : ObjectId("5b16405a8832711234bcfae7"),
    "createdAt" : ISODate("2018-06-05T07:48:45.248Z"),
    "firstName": "Bruce",
    "lastName": "Wayne",
    "index": "INV-001"
},
{
    "_id" : ObjectId("5b16405a8832711234bcfae8"),
    "createdAt" : ISODate("2018-06-05T07:48:45.248Z"),
    "firstName": "Clerk",
    "lastName": "Kent",
    "index": "INV-002"
},
{
    "_id" : ObjectId("5b16405a8832711234bcfae9"),
    "createdAt" : ISODate("2018-06-05T07:48:45.248Z"),
    "firstName": "Peter",
    "lastName": "Parker",
    "index": "INV-003"
}

我可以改变吗createdAt格式为这个Thu Jan 18 2018 using $dateToString或者是其他东西???

提前致谢!!!


虽然我当然建议您在客户端而不是在 MongoDB 内部执行此操作,但您可以通过以下方式获得您想要的东西 - 非常暴力但有效:

db.collection.aggregate([
    // you should add a $sort stage here to make sure you get the right indexes
{
    $group: {
        _id: null, // group all documents into the same bucket
        docs: { $push: "$$ROOT" } // just to create an array of all documents
    }
}, {
    $project: {
        docs: { // transform the "docs" field
            $map: { // into something
                input: { $range: [ 0, { $size: "$docs" } ] }, // an array from 0 to n - 1 where n is the number of documents
                as: "this", // which shall be accessible using "$$this"
                in: {
                    $mergeObjects: [ // we join two documents
                        { $arrayElemAt: [ "$docs", "$$this" ] }, // one is the nth document in our "docs" array
                        { "index": { $concat: [ 'INV-00', { $substr: [ { $add: [ "$$this", 1 ] }, 0, -1 ] } ] } } // and the second document is the one with our "index" field
                    ]
                }
            }
        }
    }
}, {
    $unwind: "$docs" // flatten the result structure
}, {
    $replaceRoot: {
        newRoot: "$docs" // restore the original document structure
    }
}])
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

$concat 字段与 $map mongodb 中的索引? [复制] 的相关文章

随机推荐

  • 用于获取 JavaFX WebView 控制台事件的公共 API 是什么?

    我想记录 WebView 控制台事件 他们有时会发现所使用的底层浏览器中的怪癖 并可以帮助排除故障 可以使用 Sun 实现类与 WebView 控制台交互 import WebConsoleListener setDefaultListen
  • 将方法指针从 C# 传递到 Delphi DLL

    我在将字符串作为 PChar 传递到 Delphi 构建的 DLL 时遇到了一些问题 感谢 Jens M hlenhoff 解决了它 现在我有另一个问题 如果 Delphi 声明是常规类型过程 则在传递给 DLL 时我已成功回调 c 方法
  • 将 razor 视图渲染为字符串而不修改 html

    我之前找到过有关如何将 MVC 4 视图渲染为字符串的答案 但是 我开始使用视觉工作室2013而现在的结果并不如预期 见下文 lt A gt lt B gt lt C gt class panel lt D gt gt lt E gt cl
  • MongoDB 和类验证器唯一验证 - NESTJS

    TL DR 我正在尝试在我的验证器中运行猫鼬查询 您好 我正在尝试制作一个自定义装饰器 如果该字段的值已存在 它会抛出错误 我正在尝试在验证路线的类中使用猫鼬模型 与解析器 控制器不同 InjectModel 不适用于验证器类 我的验证器是
  • 使用 jquery ui 模式对话框提交表单

    提交表单时 我在使用 JQuery UI 模态对话框时遇到困难 目的是您点击提交按钮 模式弹出窗口 根据您在模式中的选择 表单要么提交 要么不提交 相反 模式会弹出并自动提交 前端 div title Basic dialog p Plea
  • 如何将 JavaScript 对象编码为 JSON?

    有没有一种将 JavaScript 对象编码为 JSON 的好方法 我有一个键值对列表 其中名称来自复选框 并且值根据该框是否被选中而为 true 或 false var values checks checkbox each functi
  • 在颜色空间中的scale_fill/color中粘贴名称不能循环工作

    使用时缩放填充连续发散 from colorspace里面一个for loop or function不粘贴name图例标题并通过错误 如下例所示 library ggplot2 library colorspace set seed 10
  • 尝试用 JPanel 画线

    我正在尝试使用画线JPanel我已经碰壁了 我可以将两侧朝下 但是一旦涉及到从 x 线中减去 一切都会出错 package GUIstuff import java awt Graphics import javax swing JPane
  • 为什么无符号n位整数的最大值是2ⁿ-1而不是2ⁿ?

    The maximum value of an n bit integer is 2n 1 Why do we have the minus 1 Why isn t the maximum just 2n The 1因为整数是从0开始的 但
  • 如何在 C++ 端获取 QQuickItem 的有效实例

    好吧 我进行了很多搜索 但还没有找到好的解决方案 我是新来的Qt 我有一堂课是QQuickItem像这样 class MyQuickItemClass public QQuickItem Q OBJECT SetInfo SomeCppCl
  • 如何使用 SQL 查找缺失的数据行?

    我的问题 我有一个MySQL数据库 它按时间顺序存储大量气象数据 每10分钟插入一次新数据 不幸的是 已经发生了几次停电 因此某些行丢失了 我最近设法从气象站获取了某些备份文件 现在我想用它们来填充丢失的数据 DB 的结构如下 示例 dat
  • 使用 string.Replace 来匹配整个单词

    我正在使用 NET 2 0 和 WinForms 目前 我需要一段代码来将给定文本中的一个字符串替换为另一个字符串 但在文本中它应该只查找整个单词 我的意思是 string name COUNTER 40 CLOCK COUNTER 60
  • 在 DNN 训练和输入的偏导数结束时返回逆 Hessian 矩阵

    使用 Keras 和 Tensorflow 作为后端 我构建了一个 DNN 它以恒星光谱作为输入 7213 个数据点 并输出三个恒星参数 温度 重力和金属丰度 该网络在我的测试集上训练良好并预测良好 但为了使结果在科学上有用 我需要能够估计
  • GSON 无法解析带有字符串空格的 JSON

    我有以下对象 public class ParameterWrapper
  • 如何为 UWP 应用程序的 Google 提供商创建自定义 OAuth 2.0 redirect_uri?

    我想在 Google 开发者控制台中为本机应用程序注册自定义的 redirect uri 如 pw oauth2 oauth2redirect 这是 UWP 应用程序的推荐方法 根据https developers google com i
  • Pander+Knit 问题:使用 pander.list 时出错

    另一个可重现的错误 当我尝试迎合列表时 我无法创建 PDF 文件 当将表或 data frame 放入列表中时 似乎会发生这种情况 如果列表中只有矢量 PDF 可以编译 但看起来很难看 我在 Windows 上使用 pander 0 5 1
  • 在matlab中的两个数字之间插入+-(即\pm)

    我想在 matlab 创建的表中的 x 和 y 之间插入符号 pm x 1 1 5 y x 5 100 table x y 所以 输出是 1 0000 0 0500 2 0000 0 1000 3 0000 0 1500 4 0000 0
  • 优化创建

    我有 20 000 个苹果 我如何以比这更聪明的方式创建它们 foreach var a in apples graphClient Cypher Create a Apple newApple WithParam newApple a E
  • Zend Framework 2 .htaccess mamp pro

    我想开始使用 Zend Framework 2 0 我使用 os x lion 和 mamp pro 所以一开始我用了这个http framework zend com manual 2 0 en user guide sculpture
  • $concat 字段与 $map mongodb 中的索引? [复制]

    这个问题在这里已经有答案了 我有以下收藏 id ObjectId 5b16405a8832711234bcfae7 createdAt ISODate 2018 06 05T07 48 45 248Z firstName Bruce las