看了快3天的mongodb了。。下面的问题还是一头雾水。求大神,高手们指教啊!
就是想问下怎么通过一个uploadDate或者filename去部分备份数据。
上面发的备份了一张图片。然后去数据库看的时候。
记录进去了,但是没有file。
备份的时候,如果没有后面的条件,数据是可以备份的,并且file也可以获取到。
后面的-q条件该怎么写呢?
下面是报错:
MongoDB.Driver.DLL:{version: '1.8.0.124', semver: '1.8.0', commit: '5c6555a2289c227ce03a15c5bc7eb86988a3bc0c', commit_date: '2013-03-19 19:05:56'}
MongoDB.Bson.DLL:{version: '1.8.0.124', semver: '1.8.0', commit: '5c6555a2289c227ce03a15c5bc7eb86988a3bc0c', commit_date: '2013-03-19 19:05:56'}
MongoDB.Driver.GridFS.MongoGridFSException: Chunk 0 missing for GridFS file 'Zhuoku004.jpg'.
at MongoDB.Driver.GridFS.MongoGridFS.Download(Stream stream, MongoGridFSFileInfo fileInfo)
at MongoDB.Driver.GridFS.MongoGridFS.Download(Stream stream, IMongoQuery query, Int32 version)
at MongoDB.Driver.GridFS.MongoGridFS.Download(Stream stream, String remoteFileName, Int32 version)
at MongoDB.Driver.GridFS.MongoGridFS.Download(String localFileName, String remoteFileName, Int32 version)
at MongoDB.Driver.GridFS.MongoGridFS.Download(String localFileName, String remoteFileName)
at MagicMongoDBTool.Module.MongoDBHelper.OpenFile(String strRemoteFileName)
--------------------------------------------
如果是按照uploadDate来备份
mongodump -h localhost -d sfa -o G:\tmongo -q {uploadDate:{$lte:new Date('2013/09/30'),$gte:new Date('2013/08/31')}};
会报错。
mongodump -h localhost -d sfa -o G:\tmongo -q {uploadDate:{$lte:'2013/09/30',$gte:'2013/08/31'}};
但是这样查不出数据。= =!
3 个解决方案
#1
./mongoexport -h 202.173.1.37 --port 30000 -d km_mongodb -c snapshot_0 -q '{executeTime:{$gte:new Date(xxxxxxxxxxxxxx),$lt:new Date(xxxxxxxxxxxxxx)}}' -o 20130322_snapshot_0.json
./mongoexport -h 202.173.1.37 --port 30000 -d km_mongodb -c snapshotResult_0 -q '{executeTime:{$gte:new Date(xxxxxxxxxxxxxx),$lt:new Date(xxxxxxxxxxxxxx)}}' -o 20130322_snapshotResult_0.json
./mongoimport -h 202.173.19.57 --port 30000 -d km_mongodb -c snapshotResult_0 --file 20130322_snapshotResult_0.json
./mongoimport -h 202.173.19.57 --port 30000 -d km_mongodb -c snapshot_0 --file 20130322_snapshot_0.json
#2
试下上面这种做法。
#3
看了下export和import的命令。
好像可以支持这样的导入导出。
3ks。去研究下。
#1
./mongoexport -h 202.173.1.37 --port 30000 -d km_mongodb -c snapshot_0 -q '{executeTime:{$gte:new Date(xxxxxxxxxxxxxx),$lt:new Date(xxxxxxxxxxxxxx)}}' -o 20130322_snapshot_0.json
./mongoexport -h 202.173.1.37 --port 30000 -d km_mongodb -c snapshotResult_0 -q '{executeTime:{$gte:new Date(xxxxxxxxxxxxxx),$lt:new Date(xxxxxxxxxxxxxx)}}' -o 20130322_snapshotResult_0.json
./mongoimport -h 202.173.19.57 --port 30000 -d km_mongodb -c snapshotResult_0 --file 20130322_snapshotResult_0.json
./mongoimport -h 202.173.19.57 --port 30000 -d km_mongodb -c snapshot_0 --file 20130322_snapshot_0.json
#2
试下上面这种做法。
#3
看了下export和import的命令。
好像可以支持这样的导入导出。
3ks。去研究下。