質問するログイン新規登録
MongoDB

MongoDBはオープンソースのドキュメント指向データベースの1つです。高性能で、多くのリトルエンディアンシステムを利用することができます。

Q&A

解決済

1回答

3515閲覧

mongoexportにおいて、queryに日付を指定したい

oscikonome

総合スコア16

MongoDB

MongoDBはオープンソースのドキュメント指向データベースの1つです。高性能で、多くのリトルエンディアンシステムを利用することができます。

0グッド

0クリップ

投稿2020/11/02 07:00

0

0

前提・実現したいこと

WindowsでMongoDB(MongoDB shell version v4.0.10)を使用しています。
データのバックアップを取るため、コレクションから特定日以前のデータを抜き出したいです。
(容量を圧迫しつつあるため、一部は残して古いものはバックアップして削除したいです)

発生している問題・エラーメッセージ

db.(コレクション).find({"date" : {"$lte" : ISODate("2019-08-02T06:29:56.382Z")}})

で検索出来たため、mongoexportでも同様に試しましたがエラーになってしまいます。

mongoexport (略) --query {"date" : {"$lte" : ISODate("2019-08-02T06:29:56.382Z")}} too many positional arguments: [: {$lte : ISODate(2019-08-02T06:29:56.382Z)}}]

クエリ指定なしではexportできています。
調べて以下も試したのですが同じメッセージでexportできず。
https://qiita.com/isseium/items/606328facdb53bbd3b29

どこかおかしいのでしょうか。または日付指定の方法が違うのでしょうか。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

Windows環境ということですよね。Windowsのコマンドプロンプトでは、Linuxのbashなどとはシングルクオーテーション、ダブルクオーテーションの扱いが異なるようです。

C:\Users\kabao\Documents\applications\mongodb-win32-x86_64-2008plus-ssl-4.0.20>bin\mongoexport --uri "mongodb://localhost:27017/teratail" --collection 301839 --query "{'date' : {'$lte' : ISODate('1970-12-31T23:59:59.999Z')}}" --out .\out.json 2020-11-04T03:00:11.045+0900 connected to: localhost 2020-11-04T03:00:11.146+0900 exported 2 records C:\Users\kabao\Documents\applications\mongodb-win32-x86_64-2008plus-ssl-4.0.20>

のような形で、--query全体をダブルクオーテーションで囲い、その中ではシングルクオーテーションを使う形としたところ動いたようですが、いかがでしょうか。

投稿2020/11/03 18:08

kabao

総合スコア648

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

oscikonome

2020/11/04 00:35

動きました。ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.30%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問