MongoDB将数据存储在两个不同的位置

时间:2013-01-30 06:13:51

标签: mongodb mongoid

我是MongoDB的新手,在查找/访问我创建或导入的数据方面遇到了一些问题,因为它最终位于两个不同的位置。

如果我像这样启动shell

 $ mongo

然后显示数据库

$ show dbs

这给了我一个我创建的大约10个数据库的列表。它们位于/ data / db目录中。它不包含名为'pact'

的数据库

但是,如果我像这样连接

$ mongo localhost/pact

然后再做

 $show dbs

它只列出一个db,pact db,当我通过“mongo”连接到mongo时,没有列出。 'Pact'不在/ data / db目录中。根据我的说明,我可能通过这种方式启动mongod来制作'pact'数据库,

mongod --dbpath data

我认为它会将它放在data / db目录中,我像这样导入pact目录

mongoimport --stopOnError --db pact --collection products <  products.json

继续,如果我在irb中使用mongo并像这样开始

>> mongo_client = MongoClient.new("localhost", 27017)

然后执行'show dbs'

我从/ data / db目录(不包括pact)获取了很长的dbs列表。

为了通过irb找到db pact,我试图在localhost之后包含它,就像我使用mongo localhost / pact

一样
>> mongo_client = MongoClient.new("localhost/pact", 27017)

但是我收到了错误。

1有没有办法可以找出'pact'db所在的目录?

2如果不是通过

,如何使用Mongo驱动程序在irb中访问它
  
    

mongo_client = MongoClient.new(“localhost / pact”,27017)

  

我认为可以使用,因为我可以在shell mongo localhost/pact

中执行此操作

3基于我告诉你的内容,你能解释一下为什么会这样吗(我假设这不是将数据保存在另一个目录中的正确方法)

1 个答案:

答案 0 :(得分:1)

我的建议是在mongodump shell上下文

中使用mongo localhost/pact
mongodump -d pact -o /out/dir

备份整个数据库。并在normall mongorestore shell上下文

中使用mongo
mongorestore -d pact /out/dir

恢复数据库。