0
db.FirstTry.update({"id":1},{$set:{"Name":"Selvah"}});

我收到这样的错误

{ "message" : "WriteError({'code':10003,'index':0,'errmsg':'无法更改上限集合中文档的大小:72 != 71','op':{' q':{'id':1},'u':{'$set':{'Name':'Selvah'}},'multi':false,'upsert':false}})", "stack " : "脚本:1:55" + "脚本:1:13" }

4

2 回答 2

2

上限集合中文档的大小是固定的,因此您无法将新字段插入到文档中。您将必须创建一个新的临时集合并将所有数据从旧集合复制到新集合并添加新字段。

像这样的东西:

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")
于 2017-12-14T07:02:21.080 回答
0

我认为这可以解决您的问题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

于 2017-12-14T06:56:36.457 回答