如何获取 mongodb 模式转储

How to get mongodb schema dump

我可以进行 mongodb 数据备份,但我不确定 mongodb schama 备份。 有没有办法只转储 MONGODB 模式而不是数据?

您需要使用 mongorestore... 用于导入 json 或 csv 等

您可以在下面的文档中阅读有关 mongorestore 的更多信息;我会看一看并仔细阅读它们,因为它们非常有帮助。

http://www.mongodb.org/display/DOCS/Import+Export+Tools#ImportExportTools-mongorestore

您还可以查看 http://learnmongo.com 以获取提示和帮助! 或者您可以访问链接

How to use the dumped data by mongodump?希望对您有所帮助。

MongoDB 是一个 NoSQL 数据库。

任何集合都没有固定的架构,因此 mongo shell 中没有可用的函数来查找集合架构。

固定架构适用于 RDBMS 数据库。在 NoSQL DB 中,例如 mongodb,它不是必需的,但如果需要,您可以使用您的实现逻辑强制执行相同的模式。

同一集合中的文档可以是不同的架构。请看下面的例子

db.mycollection.insert([ 
{ "_id":1, "name":"A"}, 
{ "_id":2, "name":"CD", "age":29}, 
{ "_id":3, "name":"AB", "age":28}, 
{ "_id":4, "name":"ABC", "age":27, "emailId":"abc@xyz.com"}, 
{ "_id":5, "name":"ABCD", "age":29, "emailId":"abcd@xyz.com"}]);

db.mycollection.find();

{ "_id" : 1, "name" : "A" }
{ "_id" : 2, "name" : "CD", "age" : 29 }
{ "_id" : 3, "name" : "AB", "age" : 28 }
{ "_id" : 4, "name" : "ABC", "age" : 27, "emailId" : "abc@xyz.com" }
{ "_id" : 5, "name" : "ABCD", "age" : 29, "emailId" : "abcd@xyz.com" }

一种查找架构的方法

In Mongo Shell
var k = db.mycollection.findOne();
for ( i in k){print (i)};
  _id
  name

如果您集合中的所有文档都遵循相同的模式,则此方法适用于您。

这是我的做法:

mongodump --uri="mongodb://localhost/mydb" -o ./mydb-dump
find ./mydb-dump -name *.bson -exec truncate -s 0 {} \;

解释:我正在转储整个数据库,然后将所有 .bson 文件(保存集合数据)截断为零字节。

局限性:显然,这仅在源数据库很小的情况下才实用,否则您生成的大量数据转储只会丢弃大部分数据。

恢复这个-

mongorestore --uri="mongodb://some-other-server/mydb" ./mydb-dump

如果有更好的方法,我很想知道它是什么!