通过转储数据中的date / find()进行mongodump

时间:2012-04-16 10:22:20

标签: mongodb mongodump

  1. 如何按日期转储所有馆藏?如果我的记录没有时间戳字段?

      

    字段:_id,name,email,carnumber ......等等。

  2. 如何在归档/转储数据库中查找/查找()? 我需要创建搜索机制,以便在存档中搜索

2 个答案:

答案 0 :(得分:2)

  1. 您可以将查询传递给mongodump,使其仅转储部分数据。如果您无法进行查找所需数据部分的查询,那么您就不走运了。

  2. mongodump的结果是bson文件的集合。它们不是直接可查询的。但是您可以将它们加载到另一个数据库并查询它。或者您可以使用创建JSON文档的mongoexport实用程序。 JSON更易于使用。

答案 1 :(得分:1)

虽然塞尔吉奥所说的大致如此,但让我展开一点:

首先,你提到使用_id - 如果它是ObjectID(默认值),那么它包含一个时间戳 - 前4个字节是unix样式时间戳:

http://www.mongodb.org/display/DOCS/Object+IDs#ObjectIDs-BSONObjectIDSpecification

接下来,使用mongoexport的问题是JSON不保留所有BSON类型(http://bsonspec.org/#/specification) - BSON比JSON有更多类型,因此存储为JSON可能会有问题,除非您有重新导入的规则

如果你保持BSON格式的数据,bsondump会检查文件中的内容:

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

或者,如果您有一个“归档”MongoDB实例,您可以使用mongodump / mongorestore,它直接与BSON文件一起使用,并且没有mongoexport等的JSON问题。:

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