为什么我在更新 mongodb 中的文档时收到错误代码 10003?我正在使用 mongodb 版本 3.2
Why i am getting an error code 10003 while updating documents in mongodb? I'm using mongodb version 3.2
db.FirstTry.update({"id":1},{$set:{"Name":"Selvah"}});
我收到这样的错误
{ "message" : "WriteError({'code':10003,'index':0,'errmsg':'Cannot
change the size of a document in a capped collection: 72 !=
71','op':{'q':{'id':1},'u':{'$set':{'Name':'Selvah'}},'multi':false,'upsert':false}})",
"stack" : "script:1:55" +
"script:1:13" }
我认为这可以解决您的问题http://www.solidsyntax.be/2016/03/26/MongoDB-Cannot-change-the-size-of-a-document-in-a-capped-collection/
官方文档列出了有关使用 Capped 集合的信息:https://docs.mongodb.com/manual/core/capped-collections/#restrictions-and-recommendations
上限集合中文档的大小是固定的,因此您不能向文档中插入新字段。您将必须创建一个新的临时集合并将所有数据从旧集合复制到新集合并添加新字段。
像这样:
db.createCollection( "logItems_temp", { capped: true, size: 100000 } )
var cur = db.logItems.find()
while (cur.hasNext()) {
logItem = cur.next();
if(logItem.name == null){
logItem.name = selvah;
}
db.logItems_temp.insert(logItem);
}
db.logItems.drop()
db.logItems_temp.renameCollection("logItems")
db.FirstTry.update({"id":1},{$set:{"Name":"Selvah"}});
我收到这样的错误
{ "message" : "WriteError({'code':10003,'index':0,'errmsg':'Cannot change the size of a document in a capped collection: 72 != 71','op':{'q':{'id':1},'u':{'$set':{'Name':'Selvah'}},'multi':false,'upsert':false}})", "stack" : "script:1:55" + "script:1:13" }
我认为这可以解决您的问题http://www.solidsyntax.be/2016/03/26/MongoDB-Cannot-change-the-size-of-a-document-in-a-capped-collection/
官方文档列出了有关使用 Capped 集合的信息:https://docs.mongodb.com/manual/core/capped-collections/#restrictions-and-recommendations
上限集合中文档的大小是固定的,因此您不能向文档中插入新字段。您将必须创建一个新的临时集合并将所有数据从旧集合复制到新集合并添加新字段。
像这样:
db.createCollection( "logItems_temp", { capped: true, size: 100000 } )
var cur = db.logItems.find()
while (cur.hasNext()) {
logItem = cur.next();
if(logItem.name == null){
logItem.name = selvah;
}
db.logItems_temp.insert(logItem);
}
db.logItems.drop()
db.logItems_temp.renameCollection("logItems")