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

    字段:_id、姓名、电子邮件、车号……等。

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

4

2 回答 2

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

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

于 2012-04-16T10:26:31.327 回答
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

于 2012-04-16T10:49:17.097 回答