当前位置: 首页 > 知识库问答 >
问题:

当从mongoDB中的capped集合中删除文档时,是否会发生错误?

陈刚洁
2023-03-14

我正在为我的新项目学习mongoDB。我创建了一个capped集合,但当我试图从mongoDB中的capped集合中删除文档时,出现了一个错误,如下所示:,

db。麦可尔。删除({“_id”:ObjectId(“57bef716e5ff2cbb540e403b”))

WriteResult({“nRemoved”:0,“writeError”:{“code”:20,“errmsg”:“无法从封顶集合中删除:mytestdb.myc ol”})

请帮我摆脱这一切。

提前谢谢。!

共有3个答案

简培
2023-03-14

原因:您的收藏已封顶,无法执行此操作。详情:限制

另外,检查你的收藏是否封顶?按命令:

db.mycol.isCapped()

通过命令检查您的MongoDB版本:

db.version()

[Solve]创建一个没有封顶的新集合,并复制所有文档。

复制、替换集合名称并粘贴到终端中。

// replace <mycol> by <your collections name>
db.createCollection( "mycol_temp")
var cur = db.mycol.find()
while (cur.hasNext()) {
  mycol = cur.next();
  db.mycol_temp.insert(logItem);
}
db.mycol.drop()
db.mycol_temp.renameCollection("mycol")

现在,可以通过重新排列集合来接受update()或remove()文档。

乔宏峻
2023-03-14

请看一下文档:

文件删除

不能从有上限的集合中删除文档。若要从集合中删除所有文档,请使用drop()方法删除集合并重新创建带上限的集合。"

这意味着你需要删除整个集合,然后重新创建它。https://docs.mongodb.com/manual/core/capped-collections/

燕志学
2023-03-14

Capped collection不支持删除文档,并且几乎没有其他限制使它们在Capped用例中运行。

不能从有上限的集合中删除文档。若要从集合中删除所有文档,请使用drop()方法删除集合

 类似资料:
  • 我如何删除一个特定的文档中的一个集合在fiRecovery使用反应? 我在这里和谷歌上看了看,但我没有发现任何内在相关的东西。 我只是设法从我的集合中删除索引[0]的文档。 这状态idDoc接收所有id文档。 如果我只是传递. doc(idDoc),我会得到以下错误: Firebase Error: Function Collection Reference.doc()要求它的第一个参数是非空字符

  • 无法从外壳中删除集合, 集合可用并且我的 php 脚本正在访问它的东西(选择|更新) 但当我使用: 它给了我一个错误:

  • 我研究多租户web应用程序。有必要明确一些用户容器,该容器可能相当大,收集了许多文档。我需要能够删除许多文档,例如: 谢谢你。

  • 当我试图在MongoDB中删除集合中的文档时。它没有删除,因为集合已被封顶。我的问题是为什么?在这种情况下,是否有解决方案或其他功能可以删除文档?

  • 所以我有2个系列, 用户(收藏) 检查(收集) 用户只有名为不同电子邮件地址的文档 检查将文档命名为不同的电子邮件地址,然后每个文档都有另一个名为“assignedToMe”的集合,然后此集合具有命名为某些唯一 ID 的不同文档。 我想做的是,每当我删除一个用户,我希望它的文件命名为他的电子邮件地址被删除,以及从检查(收集)。 我在这里遇到的问题是,我能够从用户(集合)中删除该用户,但无法删除该特

  • 问题内容: 我正在寻找清除整个收藏夹的方法。我看到有一个批处理更新选项,但这需要我知道集合中的所有文档ID。 我正在寻找一种简单地删除集合中每个文档的方法。 谢谢! 编辑:下面的答案是正确的,我使用以下方法: 问题答案: 没有API可以一次性删除整个集合(或其内容)。 从Firestore文档中: 要在Cloud Firestore中删除整个集合或子集合,请检索集合或子集合中的所有文档并将其删除。