【发布时间】:2019-10-18 23:06:04
【问题描述】:
有没有办法 mongodump 一个包含 10 多个集合的数据库并获取每个集合中的最后 100 个对象?
这是我一直在训练的,但它不起作用:
mongodump --gzip --uri="mongodb://$IP:$PORT/$DB" \
--collection=$COLLECTION \
--archive=$COLLECTION.gz \
--query="{ \"\$limit\": 100 }"
这是输出:
Failed: (command failure) Can't canonicalize query: BadValue unknown top level operator: $limit
我真的需要查询限制才能工作,因为一些集合有 5gb 的数据,我只是为了本地开发目的而运行它,所以我只需要数据库中实际内容的一小部分样本集/收藏
对此的任何帮助将不胜感激!
更新:
我的对象有一个 unix timestamp 字段,我将查询切换到此,但仍然没有成功:
// Attempt #2
-q='{"timestamp": { "$gt": "1569888896" }}'
// Attempt #3
-q='{"timestamp":{"$gte": [{ "$toDate": "$timestamp"}, "ISODate(2016-01-01T00:00:00.000Z)"]}}'
在这些情况下没有错误,但它不断传回 0 个对象!
【问题讨论】:
标签: mongodb shell docker mongoose mongodb-query