如何按日期转储所有集合?如果我的记录没有时间戳字段?
字段:_id、姓名、电子邮件、车号……等。
以及如何在存档/转储数据库中查找/查找()?我需要创建搜索机制,用于在存档中搜索
2 回答
您可以将查询传递给 mongodump,使其仅转储您的部分数据。如果您无法进行查询以找到所需的数据部分,那么您就不走运了。
mongodump 的结果是 bson 文件的集合。它们不能直接查询。但是您可以将它们加载到另一个数据库中并进行查询。或者您可以使用
mongoexport
创建 JSON 文档的实用程序。JSON 更容易使用。
尽管塞尔吉奥所说的大体上是正确的,但让我扩展一下:
首先,您提到使用 _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