MongoDBのシリーズ - 一般的なコマンドの概要

データベースを作成します。1.
use DATABASE_NAME
すべてのデータベースを確認してください2。
show dbs
データベースを削除します。3.
db.dropDatabase()
文書を削除します。4.
db.collection.drop()
5.すべての文書を表示します
show collections
文書の作成6
db.createCollection("teacher")
文書を挿入7.
db.teacher.insert({
    title: '我是JAVA开发工程师', 
    description: 'JAVA 是世界上最好的语言',
    by: '联通智网',
    url: 'http://www.java.com',
    tags: ['mongodb', 'database', 'NoSQL'],
    likes: 100
})
8.アップデートドキュメント
db.teacher.update({"title":"我是JAVA开发工程师"},{$set : {"title":"我是直男"}})

db.teacher.update({"by" : {$in : ["联通智网"]}}, {$set: {"url" : "www.xxx.com"}}, {multi : true})
9.文書の内容
db.teacher.find()
10.文書の内容を削除します。
db.teacher.remove({"_id":ObjectId("5e1822c462468a2aa45576ac")})
11.クエリ文書の内容

ここに画像を挿入説明ここに画像を挿入説明あなたは「COL」コレクションは100よりも大きいデータを「好き」を取得したい場合は、次のコマンドを使用することができます。

db.col.find({likes : {$gt : 100}})

条件クエリ:

db.teacher.find(
   {
      $or: [
         {key1: value1}, {key2:value2}
      ]
   }
).pretty()

あなたは文字列データとして「COL」コレクションのタイトルを取得したい場合は、次のコマンドを使用することができます。

db.col.find({"title" : {$type : 2}})
或
db.col.find({"title" : {$type : 'string'}})
12.Limitとスキップする方法
db.COLLECTION_NAME.find().limit(NUMBER).skip(NUMBER)
13.ソート

データをソートするMongoDBのソート()メソッドで使用される、パラメータをソートするソート()メソッドは、フィールドによって指定され、-1と指定されたソート方法のを使用して、1は、昇順降順-1ためされていることができます配置。

db.COLLECTION_NAME.find().sort({KEY:1})
14.インデックス

インデックスは、インデックスがない場合、MongoDBのデータを読み込むときに、コレクション内の各ファイルをスキャンして、クエリ条件に一致するレコードを選択する必要があり、通常は大幅にクエリの効率を向上させることができます。

このクエリは、大量のデータを扱う場合は特に、全体の捕集効率が非常に低いスキャンし、クエリが秒、あるいは数十分かかることが、このサイトのパフォーマンスは非常に致命的です。

インデックスは特別なデータ構造、容易に横断リードに格納されたインデックスデータの集合であり、インデックス値はソートする1​​つ以上の列のデータベーステーブルの構造であります

db.collection.createIndex(keys, options)

あなたは、インデックスを作成したい文法キーインデックスフィールドの値は、あなたが-1に指定することができますインデックスを作成したい場合は降順、昇順を指定するために作成されます。
ここに画像を挿入説明db.values.createIndex({open: 1, close: 1}, {background: true})
インデックスの作成時に背景を追加することによって:trueオプションを、バックグラウンドで仕事を作成します

15. A重合

MongoDBは(集計)は、主に(等統計的平均値、合計、など)データを処理するために使用される重合し、その結果計算されたデータを返します。やや似たSQL文の数(*)。

db.COLLECTION_NAME.aggregate(AGGREGATE_OPERATION)

例えば:

db.mycol.aggregate([{$group : {_id : "$by_user", num_tutorial : {$sum : 1}}}])
{
   "result" : [
      {
         "_id" : "runoob.com",
         "num_tutorial" : 2
      },
      {
         "_id" : "Neo4j",
         "num_tutorial" : 1
      }
   ],
   "ok" : 1
}

上記の例と同様のSQL文:select by_user, count(*) from mycol group by by_user

上記の例では、フィールドby_userデータフィールドをグループ化し、そしてフィールドby_user同じ値の和を計算します。

次の表は、式のいくつかの凝集を示しています。
ここに画像を挿入説明パイプラインのコンセプト

UnixおよびLinuxのパイプは通常、コマンドパラメータとして出力する現在のコマンドを使用しています。

パイプラインの後重合のMongoDBのMongoDBドキュメント次のパイプライン処理結果処理パイプライン。パイプライン動作を繰り返すことができます。

式:文書処理の入力と出力。式はステートレスである、重合は、現在のドキュメントパイプラインを計算するために使用することができ、他の文書を扱うことができません。

ここでは、いくつかの一般的に使用されるオペレーティング高分子フレームワークを紹介します:

  • $プロジェクト:入力文書の構造を変更します。、名前の変更、フィールドの追加や削除するために使用することができ、また、ネストされた計算とドキュメントを作成するために使用することができます。
  • m a t c h 一致:フィルタデータ、適格文書の出力のみに使用。 標準MongoDBのクエリ操作を使用して、一致します。
  • $リミット:重合のMongoDBリターンパイプという文書の数を制限します。
  • $スキップ:重合導管内の文書の指定された数をスキップして、文書の残りの部分を返します。
  • $アンワインド:アレイ型フィールドの複数に分割文書は、各アレイの値を含みます。
  • $グループ:パケット内のドキュメントのコレクションは、統計的な結果を得るために使用することができます。
  • 並び替え$:ソート出力を入力文書の後。
  • $ GeoNear:地理的位置の秩序あるドキュメントへの出力があります。

例のパイプライン演算子

  1. $プロジェクト例
db.article.aggregate(
    { $project : {
        title : 1 ,
        author : 1 ,
    }}
 );

それは_idを含まれていない場合この場合、結果はまだだけ_idなり、tilteと三つのフィールドの著者、デフォルト_idフィールドが含まれていることで、それはすることができ:

db.article.aggregate(
    { $project : {
        _id : 0 ,
        title : 1 ,
        author : 1
    }});
  1. $マッチの例
db.articles.aggregate( [
    { $match : { score : { $gt : 70, $lte : 90 } } },
    { $group: { _id: null, count: { $sum: 1 } } }
] );

m a t c h 70 90 記録一致スコアを取得するためのより大きい又はより小さい7090枚のレコードに等しく、その後予選の次の段階にあります 処理のためのグループ・パイプライン演算子。

  1. $スキップ例
db.article.aggregate({ $skip : 5 });

$スキップ処理パイプライン演算子の後、最初の5つの文書が出「フィルタリング」されています。

リソース:
新人チュートリアル

公開された215元の記事 ウォンの賞賛135 ビュー114万+

おすすめ

転載: blog.csdn.net/weinichendian/article/details/103922070