今天想在项目的一个集合里增加一个新字段

db.article.update({},{$set:{status:0}},{multi:true})
  • multi : 可选,mongodb 默认是false,只更新找到的第一条记录,如果这个参数为true,就把按条件查出来多条记录全部更新。

执行报错

WriteResult({

"nMatched" : 0,

"nUpserted" : 0,

"nModified" : 0,

"writeError" : {

"code" : 10003,

"errmsg" : "Cannot change the size of a document in a capped collection: 39 != 55"

}

})

限制大小的集合不能增加字段。在网上找解决方法,执行以下脚本,

创建新集合,把原集合的文档查出来,加上新字段循环插入新集合。然后删除旧集合。然后把新集合重命名为旧集合。代码如下。

db.createCollection('article_temp',{capped:true,size:10737418240,max:100000})
var cur = db.article.find()
while(cur.hasNext()){
item = cur.next();
if(item.status == null){
item.status = 0
}
db.article_temp.insert(item)
}
db.article.drop()
db.article_temp.renameCollection('article')

参考文章:https://www.solidsyntax.be/2016/03/26/MongoDB-Cannot-change-the-size-of-a-document-in-a-capped-collection/

mongodb增加新字段报错解决方法的更多相关文章

  1. MongoDB启动.mongorc.js报错解决方法

    在bin目录下输入./mongo --norc 不去加载.mongorc.js

  2. django.db.utils.InternalError: (1060, "Duplicate column name 'user_id'")迁移报错解决方法

    django.db.utils.InternalError: (1060, "Duplicate column name 'user_id'")迁移报错解决方法 django.db ...

  3. eclipse创建的maven项目,pom.xml文件报错解决方法

    [错误一:]maven 编译级别过低 [解决办法:] 使用 maven-compiler-plugin 将 maven 编译级别改为 jdk1.6 以上: <!-- java编译插件 --> ...

  4. MyEclipse Server view报错解决方法

    MyEclipse Server view报错解决方法 方法/步骤     启动MyEclipse,弹出一个框,报错. ---------------------------------------- ...

  5. Loadrunner参数化逗号报错解决方法

    Loadrunner参数化逗号报错解决方法     介绍Loadrunner参数化时,参数中包含有逗号时出错的解决方法. 在Loadrunner进行参数化时,参数中如果含有逗号,编辑保存后会报错: 此 ...

  6. Android Studio support 26.0.0-alpha1 Failed to resolve: com.android.support:appcompat-v7:27.+ 报错解决方法

    AS下如何生成自定义的.jks签名文件, 以及如何生成数字签名 链接:http://www.cnblogs.com/smyhvae/p/4456420.html 链接:http://blog.csdn ...

  7. iOS url带中文下载时 报错解决方法

    问题描述:下载文件时, 请求带中文的URL的资源时,比如:http://s237.sznews.com/pic/2010/11/23/e4fa5794926548ac953a8a525a23b6f2/ ...

  8. jquery jssdk分享报错解决方法

    jssdk分享报错解决方法 一般都是参数传错了

  9. create-react-app创建项目后,运行npm run eject报错解决方法

    运行npm run eject报错解决方法 主要问题是脚手架添加.gitgnore文件,但是却没有本地仓库,使用以下命令操作以下就可以了 git init git add . git commit - ...

随机推荐

  1. Linux新手随手笔记1.3

    shell脚本的编写(划重点) #!/bin/bash                    脚本的声明信息 #sjsjdhsjdhh                  脚本的注释 ls -l    ...

  2. 一。Hibernate 开发流程

    一.hibernate和mybatis都是orm产品1.orm:object-realation-mapping对象关系映射 二.开发步骤1.导入相关jar 包括hibernate和oracle的驱动 ...

  3. C#字符串和ASCII码的转换

    //字符转ASCII码: public static int Asc(string character) { if (character.Length == 1) { System.Text.ASCI ...

  4. ios之库Protobuf的使用

    https://blog.csdn.net/dangbai01_/article/details/81099001 (1)Protobuf是什么? Protobuf 即 google protocol ...

  5. linux sed awk seq 正则使用 截取字符 之技巧

    [root@room9pc01 ~]# seq 5 1 2 3 4 5 [root@room9pc01 ~]# seq 2 5 2 3 4 5 seq 1 2 10 1 3 5 7 9 [root@d ...

  6. WebSocket介绍,与Socket的区别

    WebSocket介绍与原理 WebSocket protocol 是HTML5一种新的协议.它实现了浏览器与服务器全双工通信(full-duplex).一开始的握手需要借助HTTP请求完成. ——百 ...

  7. SqlMapConfig.xml 的配置

    jdbc.properties :数据库连接的配置 jdbc.driver=com.mysql.jdbc.Driver jdbc.url=jdbc:mysql://192.168.181.135:33 ...

  8. sips 命令(iMac 下系统自带)

    2. sips 2.1 -Z 指定最大宽高 //等比例缩放 scaleFill $ sips -Z 300 hgl.png $ for i in *.jpg;do sips -Z 300 " ...

  9. MarkDown&思维导图

    从markdown文件创建思维导图 pzhaonet/mindr: an R package which converts markdown files (.md, .Rmd) into mindma ...

  10. Dlib Opencv cv2.fitEllipse用于人眼轮廓椭圆拟合

    dlib库的安装以及人脸特征点的识别分布分别在前两篇博文里面 Dlib Python 检测人脸特征点 Face Landmark Detection Mac OSX下安装dlib (Python) 这 ...