MongoDB のヒントと注意事項のまとめ

小云云
リリース: 2023-03-17 17:34:01
オリジナル
1283 人が閲覧しました

Mongodb は、C++ 言語で書かれた分散ドキュメント ストレージ データベースで、WEB アプリケーションにスケーラブルで高性能なデータ ストレージ ソリューションを提供することを目的としています。 MongoDB は、高性能、オープンソース、スキーマレスのドキュメント データベースであり、現在人気の NoSQL データベースです。この記事では、MongoDB を使用する際に発生する問題の解決テクニックを紹介し、参考や学習のために共有します。

1. 配列フィールドが空ではないレコードを検索します

データ内の配列フィールドが空ではないレコードを検索します。

例: 次のような Mongo ドキュメントがあります

{
 "id" : "581c060f2b436c05aafb1632",
 "commit_history" : [ 
 "581c20d52b436c05aafb1633", 
 "581c21c12b436c05aafb1634"
 ]
},
{
 "id" : "581c060f2b436c05aafb1633",
 "commit_history" : []
}
ログイン後にコピー

commit_history が空ではないレコードを検索したい場合は、次の方法があります:

方法 1: db.collection.find({commit_history: {$not : {$サイズ: 0}}})

方法 2: db.collection.find({'commit_history.0': {$exists: 1}})

2. MongoDB にユーザーを追加します

MongoDB のコレクションにユーザーを追加するには、次の操作を実行できます:

collection_name を使用してライブラリに切り替えます

db.createUser(
 {
 user: "collection_name",
 pwd: "password",
 roles: [ "readWrite", "dbAdmin" ]
 }
)
ログイン後にコピー

3 場合によっては、列を削除する必要があります。指定されたフィールドの更新操作を使用します。

たとえば、name 列を削除するには:

query json:

{"name":{$exists:true}}
ログイン後にコピー

update json:

{$unset:{"name":""}}
ログイン後にコピー

4 番目に、データのエクスポートでは、mongodb の bin ディレクトリで mongoexport コマンドを実行し、関連するパラメーターを設定します

例:

./mongoexport -h 192.168.0.201 --port 27017 –d admin –u admin –p admin -c department -o /home/admin/department.dat
ログイン後にコピー

-h: 接続するデータベースの IP を指定します。

--port: 接続するデータベースのポートを指定します。

: 接続するデータベースのユーザー名を指定します。 -p: 接続するデータベースを指定します。

-d: 接続するライブラリ名を指定します。

-o: エクスポートするデータセットを指定します。エクスポートするデータ

注: (1) 接続されたデータベースが正常に動作していることを確認する必要があります

(2) データベースにユーザー情報が追加され、起動時にユーザー認証が行われないという状況に遭遇したことがありますが、このコマンドを実行すると、ユーザー名とパスワードを指定した後でのみエクスポートが成功しました。 . 同じような状況に遭遇した人がいたら、試してみるといいでしょう。


5. データをインポートし、mongodb の bin ディレクトリで mongoimport コマンドを実行し、関連するパラメーターを設定します。パラメーターの説明は上記と同じです。例:

./mongoimport --port 27017 -d admin -u admin –p admin –c department /home/common/mongodb305/bin/department.dat
ログイン後にコピー

6. 非ユーザー認証の問題。 amdin データベース:

us mongodb データベースのライブラリにユーザーを追加するには、ターゲット データベースで次のコマンドを使用します。たとえば、mongoTest ライブラリに読み取りおよび書き込み権限を持つユーザーを追加します。

管理データベースに追加することもできます:

db.createUser({"user":"test","pwd":"123456","roles":["readWrite"]})
ログイン後にコピー

これら 2 つの方法には違いがあることに注意してください。かつて私を騙したのはこの違いです:


最初の方法を使用して追加する場合このコマンドは、mongodb の bin ディレクトリで次のコマンドを直接実行して、テスト データベースを操作し、追加、削除、変更、およびクエリを実行することもできます。 名前とパスワードは mongoVUE で接続されています:

db.createUser({"user":"test","pwd":"123456","roles":[{"role":"readWrite","db":"test"},"readWrite"]})
ログイン後にコピー


ただし、2 番目の方法で作成された場合、上記のコマンドを直接使用すると、最初に mongo を入力した場合にのみ、検証が失敗したことを示すメッセージが表示されます。 シェルは管理データベースに接続されており、テスト データベースに切り替えるときに検証に合格できます。これは小さな落とし穴です。状況を知らない人は非常に混乱するかもしれません。ユーザー名とパスワードは問題ないのに、何らかの理由で接続できません。

7. mongodb3.0のデフォルトのデータ保存方法はmongodb 2.6のものと同じですが、起動時に次のパラメータを使用してみました。その場合のみ、そうでない場合はエラーが報告されます:

./mongo -h 192.168.0.201 --port 27017 -u test -p 123456 -d test
ログイン後にコピー

mongodb.conf は、dbpath、logpath などの起動用の他のさまざまなパラメーターで構成されます。


上記の内容は、MongoDB を日常的に使用する際のヒントと注意事項をまとめたものです。

関連する推奨事項:

mongoDBデータベースとは


phpstudyはMongoDBをどのように拡張するか

MongoDBのセキュリティを向上させる方法

以上がMongoDB のヒントと注意事項のまとめの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!