问题描述
我正在尝试从数据库中备份3篇文章,我有他们的ID,但是当我尝试使用mongodump时,我似乎无法编写正确的json查询。我收到JSON错误消息或一些神秘的cannot decode objectID into a slice
消息。
这是我目前正在尝试运行的命令:
mongodump -d 'data' -c 'articles' -q '{"$oid": "5fa0bd32f7d5870029c7d421" }'
这将返回ObjectID into a slice
错误,我不太了解。我也尝试使用ObjectId,就像这样:
mongodump -d 'data' -c 'articles' -q '{"_id": ObjectId("5fa0bd32f7d5870029c7d421") }'
我尝试了各种形式的转义,转义双引号,转义美元,但似乎没有任何效果。我很绝望,我讨厌mongodb。我最能找到可行解决方案的地方是:
mongodump -d 'nikkei' -c 'articles' -q '{"_id": "ObjectId(5fa0bd32f7d5870029c7d421)" }'
我说最接近的,因为这没有失败,该命令运行了,但返回了done dumping data.articles (0 documents)
,这意味着,如果我正确理解,则不会保存任何文章。
查询的正确格式是什么?顺便说一下,我正在使用mongodump版本r4.2.2。
解决方法
如果您查询的是JSON,请尝试使用此格式。
mongodump -d=nikkei -c=articles -q'{"_id": "ObjectId(5fa0bd32f7d5870029c7d421)" }'
除了标题,您还能查询什么吗?可能会使事情变得更简单。
我从mongoDB文档中拉了这个。页面很远,但是这里是链接。
https://docs.mongodb.com/database-tools/mongodump/#usage-in-backup-strategy
,我有这4个文件的集合:
public IActionResult Index()
{
User _User = new User { UserId = 1,UserName = "sss" };
var username = _User.UserName;
return View();
}
我使用> db.test.find()
{ "_id" : ObjectId("5fab80615397db06f00503c3") }
{ "_id" : ObjectId("5fab80635397db06f00503c4") }
{ "_id" : ObjectId("5fab80645397db06f00503c5") }
{ "_id" : ObjectId("5fab80645397db06f00503c6") }
进行二进制导出。这是在Windows操作系统上使用的是MongoDB v4.2。
mongodump