mongodb exception: $concat only supports strings, not NumberInt32解决办法

今天在用mongodb操作aggregation的时候出现这个问题,我是想格式化日期,例如”2013-10-17 04:41:37 UTC”变成”10月17日”,

代码如下:

'fdate' => { '$concat' => ['$date.month', '月', '$date.day', '日'] }

出现 exception: $concat only supports strings, not NumberInt32

原来$concat只能操作字符串,不支持数字类型,解决办法是用$substr

代码如下:

$date形如'2013-10-13 11:17:18 UTC'

'fdate' => { '$concat' => [ {$substr=>['$date', 5, 2]}, '月', {$substr=>['$date', 8, 2]}, '日'] }

$substr接受两个参数,一个是字符串的起点,一个是截取的字符串的长度。

(0)

相关推荐

  • mongodb错误tcmalloc: large alloc out of memory, printing stack and exiting解决办法

    最近Mongodb会经常突然挂掉,检查日志发现如下的错误: 复制代码 代码如下: tcmalloc: large alloc 2061584302080 bytes == (nil) @ Tue Nov 26 17:45:04.539 out of memory, printing stack and exiting: 0xdddd81 0x6cfb4e 0x121021d 0xafcc1f 0xaf815f 0xaf8d1d 0xaf8e0f 0xaf52ae 0xaf53c9 0xb1eb1

  • Go语言interface详解

    interface Go语言里面设计最精妙的应该算interface,它让面向对象,内容组织实现非常的方便,当你看完这一章,你就会被interface的巧妙设计所折服. 什么是interface 简单的说,interface是一组method的组合,我们通过interface来定义对象的一组行为. 我们前面一章最后一个例子中Student和Employee都能SayHi,虽然他们的内部实现不一样,但是那不重要,重要的是他们都能say hi 让我们来继续做更多的扩展,Student和Employe

  • golang实现unicode转换为字符串string的方法

    本文实例讲述了golang实现unicode转换为字符串string的方法.分享给大家供大家参考,具体如下: 复制代码 代码如下: package main import (     "bytes"     "encoding/binary"     "encoding/hex"     "fmt"     "strings" ) func main() {     str := `\u5bb6\u65cf

  • Go语言string,int,int64 ,float之间类型转换方法

    (1)int转string s := strconv.Itoa(i) 等价于s := strconv.FormatInt(int64(i), 10) (2)int64转string i := int64(123) s := strconv.FormatInt(i, 10) 第二个参数为基数,可选2~36 注:对于无符号整形,可以使用FormatUint(i uint64, base int) (3)string转int i, err := strconv.Atoi(s) (4)string转in

  • go语言中的interface使用实例

    go语言中的interface是一组未实现的方法的集合,如果某个对象实现了接口中的所有方法,那么此对象就实现了此接口.与其它面向对象语言不同的是,go中无需显示声明调用了哪个接口. 复制代码 代码如下: package main   import (  "fmt" )   type I interface {  Get() int  Put(int) }   type S struct{ i int }   func (p *S) Get() int  { return p.i } f

  • mongodb exception: $concat only supports strings, not NumberInt32解决办法

    今天在用mongodb操作aggregation的时候出现这个问题,我是想格式化日期,例如"2013-10-17 04:41:37 UTC"变成"10月17日", 复制代码 代码如下: 'fdate' => { '$concat' => ['$date.month', '月', '$date.day', '日'] } 出现 exception: $concat only supports strings, not NumberInt32 原来$conca

  • 关于mongoose连接mongodb重复访问报错的解决办法

    具体代码如下所示: var express = require('express'); var mongoose = require('mongoose'); var router = express.Router(); var Person = mongoose.model('Person',{ id:Number, name:String }); /*新增*/ router.get('/insert', function(req, res){ var student = new Person

  • Mongodb 副本集搭建问题总结及解决办法

    Mongodb 副本集搭建问题总结及解决办法 Mongodb数据库的副本集是由多台服务器组成,基中一台是主节点,其它为从节点,如果主节点宕机就自动切换到任意一个从节点.如果以前的主节点修复完成和正常运行就自动变成从节点,从节点不能查询数据.也可以在一台服务器装多个Mongodb端口不一样. 在我以往的认知中,一个系统一旦正式上线,多半不会轻易的迁移服务器,尤其是那种涉及到多个关联应用,涉及到多台硬件服务器的系统,因为这种迁移将是牵一发而动全身的. 但是,却仍然有这种情况存在,就如我这几天主要负责

  • MongoDB诡异问题之sh.stopBalancer卡住的解决方法

    背景 Part1:写在最前 我们在使用MongoDB sharding集群时,会使用如下命令来管理启停Balancer: >sh.stopBalancer() 停止Balancer >sh.startBalancer() 开启Balancer Part2:背景 开启balancer后,客户反馈前端应用写入缓慢,查询超时.因此我们尝试关闭balancer,来避免chunk迁移对集群性能带来的影响. 但是在调用sh.stopBalancer的时候,发现却停不下来,sh.stopBalancer会处

  • Win10 安装 MongoDB 3.6.5 失败的问题及解决方法

    MongoDB 3.6.5 2008R2Plus SSL (64 bit) Setup Wizard ended prematurely 在安装 MongoDB 的时候,出现了MongoDB 3.6.5 2008R2Plus SSL (64 bit) Setup Wizard ended prematurely的错误,原因不明,但有解决办法: 解决办法 在安装的时候不勾选 Install MongoDB Compass选项即可 总结 以上所述是小编给大家介绍的Win10 安装 MongoDB 3

  • mongodb出现id重复问题的简单解决办法

    目录 背景 ObjectId 的结构 尝试 解决办法 总结 背景 今天遇到mongodb在插入数据时出现id重复错误,具体错误代码如下: duplicate key error collection: index: id dup key: { : ObjectId('59a3b9275f063c20cc8bdec7') }', 觉得奇怪 id不是自己生成的,怎么会这样呢 . 于是查了下ObjectId . ObjectId 的结构 这些是 _id 的一些主要特征的摘要: _id 是集合中文档的主

  • Navicat远程连接MongoDB最全实现方法以及报错解决

    目录 MongoDB简介 MongoDB的安装 Navicat远程连接MongoDB 总结 MongoDB简介 MongoDB是一个开源.高性能.支持海量数据存储的文档型数据库. 是NoSQL数据库产品中的一种,是最像关系型数据库(MySQL)的非关系型数据库 数据存储量较大,甚至是海量 对数据读写的响应速度要求较高 某些数据安全性要求不高,可以接受一定范围内的误差 MongoDB的安装 使用docker安装MongoDB: docker pull mongo docker run --name

  • Mongodb 忘记密码的解决办法

    下午刚设置的密码,当时忘记保存,晚上去吃了个晚饭回来就忘记了.研究了一会发现也不难,不过网上没有直接搜到就记录一下,按照以下步骤操作即可 操作步骤: 复制代码 代码如下: vim /etc/mongodb.conf          # 修改 mongodb 配置,将 auth = true 注释掉,或者改成 false service mongodb restart        # 重启 mongodb 服务   mongo                          # 运行客户端(

  • MongoDB在系统数据库local中无法创建用户的解决办法

    前言 我们知道,MongoDB的Oplog (operations log)记录了用户的最近一段时间的操作(时间长短主要受设置的oplogSize和程序的写入更新量的影响).那么,如果其他部门(例如BI团队)需要抽取数据,从 local.oplog.rs中读取解析一个不错的选择. oplog位于local数据下面,为了将权限最小化,大家需要创建此库的权限(还可以将权限细化到集合,再次不讨论). 习惯性的,在local数据库下面创建,但是报错了. 执行脚本 db.createUser( { use

随机推荐