質問をすることでしか得られない、回答やアドバイスがある。

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

新規登録して質問してみよう
ただいま回答率
85.48%
MongoDB

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

Q&A

解決済

1回答

2736閲覧

mongoDB:collectionの中の一部をex || importしたい

poyopi

総合スコア113

MongoDB

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

0グッド

0クリップ

投稿2016/05/23 06:50

※mongoについて理解不十分のため、誤記・誤認識等についてご容赦ください。

mongoDBにためているデータがあるのですが、これらをCollectionごとにexport/importすることをよく行っています(サーバAからサーバBに移したりなど)。その際たとえばサーバAでは[COLLECTION_NAME]のコレクションを出力し、

mongoexport --db [DB_NAME] --collection [COLLECTION_NAME] -o [FILE_NAME].json

このデータを置く予定のサーバBでは

mongo db.[COLLECTION_NAME].remove({})

などして一旦コレクションの中身を消し、先ほど出力したものを

mongoimport --db [DB_NAME] --collection [COLLECTION_NAME] --file [FILE_NAME].json

インポートするなどしています。

COLLECTIONの中に入っているドキュメントは、一意のidを持っており、たとえばdb.[COLLECTION_NAME].find({},{id:true})などとすると、下記のような感じで返ります。

> db.[COLLECTION_NAME].find({}, {id:true}) {"id":"hogehoge1"} {"id":"hogehoge2"} {"id":"hogehoge3"} {"id":"hogehoge4"} . . . (以下略)

ここから質問なのですが、 冒頭のmongoexportのようにコレクションのすべてを対象にするのではなく、たとえば上記で言う{"id":"hogehoge1"}だけをexportしたりimportしたりする方法はありませんでしょうか。検索しているのですが、自分が実現したいことを端的に形容できる言葉が見つからず、結果的に思うような検索結果を得ることができなかったため質問いたしました。

意図としては、たとえばサーバBに問題が起きて{"id":"hogehoge1"}のデータがないという際に、サーバAからその分だけリカバリしたいのです。
これについて構文や、またはこの情報に適している検索ワード/サイトなどございましたらご教示頂ければと思います。

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

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

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

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

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

guest

回答1

0

自己解決

こちら、mongoimportの際にupsertオプションをつけることで対処できるとわかりました(まだ自分の環境で検証していませんが……)。該当データが存在しなければinsertしてくれ、存在していればupdateしてくれるものです。これによりremoveなどの作業の手間も省けるようです。
参考先:
MongoDB超入門#upsert - Qiita
mongo DBのバックアップファイルから特定のドキュメントをリストアする - テノニッキ (@hideack 's diary)
mongoDBのバックアップとリストア - コノルブログ

投稿2016/05/24 06:30

poyopi

総合スコア113

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問