1. Mongodb の基本概念
1. Mongodb データベースの命名規則:
空の文字列 ("") は使用できません
'' (スペース)、.、$、/、および
D:mongodbbin>mongo
または、Windows エクスプローラーで C:mongobin に移動し、mongo.exe をダブルクリックします。
どの方法を選択してもシェルが表示されます。
MongoDB シェル バージョン: 1.6.5
接続先: test
>
これで、テスト サーバーに接続されました。
2.Linux での MongoDB のインストールと構成
1. 32 ビット linux の場合
$curl http://downloads.mongodb.org/linux/mongodb-linux-i686-1.4.4.tgz > mongo.tgz
$ tar xzf mongo.tgz
64 ビット linux の場合
$curl http://downloads.mongodb.org/linux/mongodb-linux-x86_64-1.4.4.tgz > mongo.tgz
$ tar xzf mongo.tgz そうでない場合curl をインストールします。まず、apt-get をインストールします。curl をインストールします。 デフォルトでは、MongoDB はデータを /data/db/ フォルダーに保存します。このフォルダーは手動で作成する必要があります。 次のように作成します。 $ adduser mongodb $ passwd mongodb $ sudo mkdir -p /data/db/ $ sudo chown `id -u` /data/db $ chown -R mongodb:mongodb /data もちろん、次のように指定することもできます。 --dbpath コマンド MongoDB はデータを別のディレクトリに保存します。
3. コンソールでデータベースを実行します: $ nohup ./mongodb-xxxxxxx/bin/mongod & $ ./mongodb-xxxxxxx/bin/mongo > db.foo.save( { a : 1 } ) > db.foo .find() の結果は次のようになります: { "_id" : ObjectId("4cd181a31415ffb41a094f43"), "a" : 1 } OK! !
2つ。 Mongodb の手順と関連操作
a) show コマンド
ii. 現在のすべてのデータベースを表示するには、dos に show db を入力します
> show dbs
admin
alphabet
color
colors
local
mymongo
test
>
iii. show collections view All現在のデータベースの下のテーブル
> use mymongo
db mymongo に切り替え
> show collections
colors
shell.colors
system.indexes
>
b) 現在使用する必要があるデータベースを指定します
i。新しいライブラリを作成します。このライブラリにデータがない場合は、一定期間後にシステムが破棄されます
ii. [データベース名] を使用します
i) データを追加します。データ形式は json 形式です
ii。 insertで追加したデータにtableを追加すると、新しいテーブルが作成され、テーブルにデータが追加されます
iii. db.[テーブル名].insert()
> db.dingdan.insert(
... {
... order_id: 109384,
.. Order_date: new Date("12/04/2010"),
... 顧客: {
... 名前: "Joe Bloggs"、
... 会社: " XYZ Inc.」、
... 電話 : "(555) 123-4567"
... }、
... 支払い: {
... タイプ: "現金"、
... 金額: 4075.99、
...paid_in_full: true
.. . .
...説明: 「高価な製品」、
...数量: 2,
...price_per _unit: 2000
.. .}, ...], c ... レジ係 ID: 340582242
...}
...)
D) 手順の保存
Ii データの保存
Iiテーブルにデータがない場合は
iii. このデータがテーブルに存在する場合は、新しいデータを変更します
db.[テーブル名].save()
db.collection.save( x )
x は更新するオブジェクトです。単一レコードのみを指定できます。
コレクション内に x オブジェクトと同じ「_id」を持つレコードが既に存在する場合。 Mongodb はコレクション内の既存のレコードを x オブジェクトに置き換えます。それ以外の場合、x に _id がない場合は、システムが自動的に _id を生成して挿入します。これは、上記の update ステートメントの upsert=true および multi=false の状況と同等です。
db.test0.save({count:40,test1:"OK"}); test0 の場合、_id システムは
db.test0.save({_id:40,count:40,test1:"OK"}) を生成します。 40 に等しい _id がある場合は置き換えられ、そうでない場合は挿入されます。
e) 削除コマンド
i. テーブル内の指定されたデータを削除します
ii. db.[テーブル名].remove()
カラーテーブルにレコードを追加します
> db.colors.save({"color" : "112233"})
> db.colors.find()
{ "_id" : ObjectId("4e9bc2024fadb58af17b2f01"), "color" : "ff0000" }
{ "_id" : ObjectId("4e9bc2374fadb58af17b2f02"), " color " : "ff0000" }
{ "_id" : ObjectId("4e9bc2384fadb58af17b2f03"), "color" : "ff0000" }
{ "_id" : ObjectId("4e9bc2394fadb58af17b2f04"), "color" : "ff0000" }
{ "_id" : ObjectId("4e9bc2394fadb58af17b2f05"), "color" : "ff0000" }
{ "_id" : ObjectId("4e9bc23a4fadb58af17b2f06"), "color" : "ff0000" }
{ "_id" : ObjectId(" 4e9b c23a4fadb58af17b2f07 "), "color" : "ff0000" }
{ "_id" : ObjectId("4e9bc23b4fadb58af17b2f08"), "color" : "ff0000" }
{ "_id" : 17b2f09")、"カラー" : " ff0000" }
{ "_id" : ObjectId("4e9bc23c4fadb58af17b2f0a"), "color" : "ff0000" }
{ "_id" : ObjectId("4e9bc23c4fadb58af17b2f0b"), "color" : "ff0000" }
{ " _id" : ObjectId("4e9bc23d4fadb58af17b2f0c"), "color" : "ff0000" }
{ "_id" : ObjectId("4e9e3f435240000000005a2d"), "color" : "112233" }
追加したレコードを削除します
> .カラー。 Remove({"color":"112233"})
> db.colors.find()
{ "_id" : ObjectId("4e9bc2024fadb58af17b2f01"), "color" : "ff0000" }
{ "_id" : ObjectId( "4e9bc2374fadb58af17b2f02"), "color" : "ff0000" }
{ "_id" : ObjectId("4e9bc2384fadb58af17b2f03"), "color" : "ff0000" }
{ "_id" : ObjectId("4e9bc2394fadb58 17b2f04"),"色" : "ff0000" }
{ "_id" : ObjectId("4e9bc2394fadb58af17b2f05"), "color" : "ff0000" }
{ "_id" : ObjectId("4e9bc23a4fadb58af17b2f06"), "color" : "ff0000" }
{ " _id" : ObjectId("4e9bc23a4fadb58af17b2f07")、"color" : "ff0000" }
{ "_id" : ObjectId("4e9bc23b4fadb58af17b2f08")、 "color" : "ff0000" }
{ "_id" : 9b c23b4fadb58af17b2f09" ), "color" : "ff0000" }
{ "_id" : ObjectId("4e9bc23c4fadb58af17b2f0a"), "color" : "ff0000" }
{ "_id" : "4e9bc23c4fadb58af17b2" f0b")、"色" : "ff0000 " }
{ "_id" : ObjectId("4e9bc23d4fadb58af17b2f0c"), "color" : "ff0000" }
f) 更新コマンド
i. db.[テーブル名].update()
db .collection .update( criteria, objNew, upsert, multi )
objNew と同様のクエリ条件の更新 SQL 更新クエリの後の部分: オブジェクトと一部の更新演算子 ($、$inc... など) など.、SQL 更新クエリで設定した後の
upsert としても理解できます。このパラメーターは、更新レコードがない場合に objNew を挿入するかどうかを意味し、true は挿入を意味し、デフォルトは false で挿入しません。
multi: mongodb のデフォルト値は false で、最初に見つかったレコードのみが更新されます。このパラメーターが true の場合、条件に従って見つかった複数のレコードがすべて更新されます。
db.test0.update( { "count" : { $gt : 1 } } , { $set : { "test2" : "OK"} } ); test0 の最初のレコードのみが更新されます。 .update( { "count" : { $gt : 3 } } , { $set : { "test2" : "OK"} },false,true ); すべて更新されました
db.test0.update( { "count " : { $gt : 4 } } , { $set : { "test5" : "OK"} },true,false ); 最初の 1 つだけが追加されました
db.test0.update( { "count" : { $gt : 5 } } , { $set : { "test5" : "OK"} },true,true ); すべて追加されました
db.test0.update( { "count" : { $gt : 15 } } , { $inc : { "カウント" : 1} },false,true );すべて更新されました
db.test0.update( { "カウント" : { $gt : 10 } } , { $inc : { "カウント" : 1} },false ,false );最初のもののみを更新しました
g) Find コマンド
i. データをクエリし、スキップおよび制限メソッドとともに使用してページング効果を実現できます。
ii. db.[テーブル名].find({}).skip([num1]).limit([num2])、num1 はどのデータから始まり、不足している場合は num2 がクエリされたデータの数になります。 data の場合、残りのデータが優先されます
iii. db.[テーブル名].find({[_id:{ < : num }]}) 括弧はクエリ条件と、「より大きい」や「より小さい」などの関係演算子の例です。翻訳文字を使用して置き換えます。
> zm を使用します
db zm に切り替えました
> db.zm.find().skip(10).limit(5);
{ "_id" : ObjectId("4e9e3d6b5240000000005a1c"), "char" : "k", "コード" : 107 }
{ "_id" : ObjectId("4e9e3d6b5240000000005a1d"), "char" : "l", "code" : 108 }
{ "_id" : ObjectId("4e9e3d6b5240000000005a1e"), "char" : "M"、 "code":109} {"_id":objectId( "4e9e3d6b5240000000005a1f")、 "char": "n"、 "code":110}
{"_id":objectid( "4e9e3d6b524000000000000000005a20")、 "char" : "o", "code" : 111 }
>
h) findOne コマンド
i. 指定されたクエリ内の最初のコマンドをクエリします
ii. db.[テーブル名].findOne()
> db. .findOne()
{ "_id" : ObjectId("4e9e3d6b5240000000005a12"), "char" : "a", "code" : 97 }
注: findOne の O は大文字にする必要があります。
i) function
i. カスタム関数、定義後に直接呼び出すことができます
ii. function testFunction(op1,op2,op3……){}
iii.「testFunction」: function(op1,op2,op3……) {}
iv. 定義された関数は直接呼び出すことができ、return を使用してデータを返すことができます
> function testFunction(){
... db.zm.remove({"code":{$in:[100,101,102,103] }})
... return db.zm.find({})
... }
> testFunction()
{ "_id" : ObjectId("4e9e3d6b5240000000005a12"), "char" : "a", "code " : 97 }
{ "_id" : ObjectId("4e9e3d6b5240000000005a13"), "char" : "b", "code" : 98 }
{ "_id" : ObjectId("4e9e3d6b5240000000005a14"), "char" : "c ", " code" : 99 }
{ "_id" : ObjectId("4e9e3d6b5240000000005a19"), "char" : "h", "code" : 104 }
{ "_id" : ObjectId("4e9e3d6b5240000000005a1a"), "char " : " i", "code" : 105 }
{ "_id" : ObjectId("4e9e3d6b5240000000005a1b"), "char" : "j", "code" : 106 }
{ "_id" : ObjectId("4e9e3d6b5240000000005a1c") 」 ), " char" : "k", "code" : 107 }
{ "_id" : ObjectId("4e9e3d6b5240000000005a1d"), "char" : "l", "code" : 108 }
{ "_id" : ObjectId ("4e9e3d6b5240000000005a1e "), "char" : "m", "code" : 109 }
{ "_id" : ObjectId("4e9e3d6b5240000000005a1f"), "char" : "n", "code" : 110 }
{ " _id" : ObjectId("4e9e3d6b5240000000005a20"), "char" : "o", "code" : 111 }
{ "_id" : ObjectId("4e9e3d6b5240000000005a21"), "char" : "p", "code" : 112 }
{ "_id" : ObjectId("4e9e3d6b5240000000005a22"), "char" : "q", "code" : 113 }
{ "_id" : ObjectId("4e9e3d6b5240000000005a23"), "char" : "r", "コード" : 114 }
{ "_id" : ObjectId("4e9e3d6b5240000000005a24"), "char" : "s", "code" : 115 }
{ "_id" : ObjectId("4e9e3d6b5240000000005a25"), "char" : 」 t", "code" : 116 }
{ "_id" : ObjectId("4e9e3d6b5240000000005a26"), "char" : "u", "code" : 117 }
{ "_id" : ObjectId("4e9e3d6b5240000000005a27"), 」 char" : "v"、"code" : 118 }
{ "_id" : ObjectId("4e9e3d6b5240000000005a28")、 "char" : "w"、 "code" : 119 }
{ "_id" : ObjectId("4e9e3d6b5240000000005a28") 29 "), "char" : "x", "code" : 120 }
has more
j) var
i. 変数の名前付け type
ii. は JS の var と同じです。
1. var [name] の命名も、js 変数の命名規則と一致しています。
k) print コマンド
i. 印刷に使用されます
ii. print([Strings]);
iii. 印刷オブジェクトが mongo データである場合、それは認識されません。
l) printJson コマンド
i. printJson([json]);
m) shutdown
i. > データベース名を使用して
admin
>db.shutdownServer () を実行します。 ;
サーバーがダウンしているはずです…
MongoDB は、次のようなさまざまな条件演算子をサポートしています:
? $lt (より小さい)
? $gt (より大きい)
?または等しい)
? $exists (フィールドが存在するかどうかを確認する)
? $ne (等しくない)
?配列内の 1 つ以上の値
? $type (指定された BSON データ型と一致する値)
? $not (等しくない)
db.tablename.find({fieldname:{$gt:100} })
mongodb 更新演算子:
1 ) $inc
Usage: { $inc : { field : value } }
は、数値フィールドに値を追加することを意味します。例:
> db.test0.find( { "_id" : 15 } );
{ "_id" : { "floatAbout" : 15 }, "count" : 16, "test1" : "TESTTEST", "test2" : "OK", "test3" : "TESTTEST" ", "test4" : "OK", "test5" : "OK" }
> db.test0.update( { "_id" : 15 } , { $inc : { "count" : 1 } } );
> db.test0.find( { "_id" : 15 } );
{ " _id" : { "floatAbout" : 15 }, "count" : 17, "test1" : "TESTTEST", "test2" : "OK", "test3" : "TESTTEST", "test4" : "OK", " test5" : "OK" }
> db.test0.update( { "_id" : 15 } , { $inc : { "count" : 2 } } );
> db.test0.find( { "_id" : 15 } );
{ "_id" : { "floatAbout" : 15 }, "count" : 19, "test1" : "TESTTEST", "test2" : "OK", "test3" : "TESTTEST", " test4" : "OK", "test5" : "OK" }
> db.test0.update( { "_id" : 15 } , { $inc : { "count" : -1 } } );
> db .test0.find( { "_id" : 15 } );
{ "_id" : { "floatAbout" : 15 }, "count" : 18, "test1" : "TESTTEST", "test2" : "OK", "test3" : "TESTTEST", "test4" : "OK", "test5" : "OK" }
2) $set
使用法: { $set : { field : value } }
は以下と同等ですSQL の set フィールド = 値、すべてのデータ型が $set をサポートします。例:
> db.test0.update( { "_id" : 15 } , { $set : { "test1" : "testv1","test2" : "testv2","test3" : "testv3","test4" : "testv4" } } );
> db.test0.find( { "_id" : 15 } );
{ "_id" : { "floatAbout" : 15 }, "count" : 18, "test1" : " testv1", "test2" : "testv2", "test3" : "testv3", "test4" : "testv4", "test5" : "OK" }
3) $unset
使用法: { $unset : { field : 1} }
その名の通り、フィールドを削除することです。例:
> db.test0.update( { "_id" : 15 } , { $unset : { "test1":1 } } );
> db.test0.find( { "_id" : 15 } );
{ "_id" : { "floatAbout" : 15 }、 "count" : 18、 "test2" : "testv2"、 "test3" : "testv3"、 "test4" : "testv4"、 "test5" : "OK" }
> db.test0.update( { "_id" : 15 } , { $unset : { "test2": 0 } } );
> db.test0.find( { "_id" : 15 } );
{ "_id" : { "floatAbout" : 15 }, "count" : 18, "test3" : "testv3", "test4" : "testv4", "test5" : "OK" }
> db.test0. update( { "_id" : 15 } , { $unset : { "test3":asdfasf } } );
金曜日 5 月 14 日 16:17:38 JS エラー: ReferenceError: asdfasf が定義されていません (シェル):0
> db.test0.update( { "_id" : 15 } , { $unset : { "test3":"test" } } );
> db.test0.find( { "_id" : 15 } );
{ " _id" : { "floatAbout" : 15 }, "count" : 18, "test4" : "testv4", "test5" : "OK" }
フィールド : 1 の 1 が何であるかわかりませんでした、とにかく何かがある限り。
4) $push
使用法: { $push : { field : value } }
フィールドに値を追加します。フィールドが存在しない場合は、新しい配列型が追加されます。 。例:
> db.test0.update( { "_id" : 15 } , { $set : { "test1" : ["aaa","bbb"] } } );
> db.test0.find( { "_id" : 15 } );
{ "_id" : { "floatAbout" : 15 }, "count" : 18, "test1" : [ "aaa", "bbb" ], "test4" : "testv4", "test5" : "OK" }
> db.test0.update( { "_id" : 15 } , { $push : { "test1": "ccc" } } );
> db.test0.find( { "_id" : 15 } );
{ "_id" : { "floatAbout" : 15 }, "count" : 18, "test1" : [ "aaa", "bbb", "ccc" ], "test4" : "testv4", "test5" : "OK" }
> db.test0.update( { "_id" : 15 } , { $push : { "test2": "ccc" } } );
> db.test0 .find( { "_id" : 15 } );
{ "_id" : { "floatAbout" : 15 }, "count" : 18, "test1" : [ "aaa", "bbb", "ccc" ], "test2" : [ "ccc" ], "test4" : "testv4", "test5" : "OK" }
> db.test0.update( { "_id" : 15 } , { $push : { "test1 ": ["ddd","eee"] } } );
> db.test0.find( { "_id" : 15 } );
{ "_id" : { "floatAbout" : 15 }, "count" : 18、「test1」:[「aaa」、「bbb」、「ccc」、[「ddd」、「eee」] ]、「test2」:[「ccc」]、「test4」:「testv4」、「test5」 " : "OK" }
5) $pushAll
使用法: { $pushAll : { field : value_array } }
$push と同じですが、複数の値を一度に配列フィールドに追加できる点が異なります。例:
> db.test0.find( { "_id" : 15 } );
{ "_id" : { "floatAbout" : 15 }, "count" : 18, "test1" : [ "aaa", " bbb", "ccc", [ "ddd", "eee" ] ], "test2" : [ "ccc" ], "test4" : "testv4", "test5" : "OK" }
> db.test0 .update( { "_id" : 15 } , { $pushAll : { "test1": ["fff","ggg"] } } );
> db.test0.find( { "_id" : 15 } );
{ "_id" : { "floatAbout" : 15 }, "count" : 18, "test1" : [ "aaa", "bbb", "ccc", [ "ddd", "eee" ], "fff" 、"ggg" ]、"test2" : [ "ccc" ]、"test4" : "testv4"、"test5" : "OK" }
6)$addToSet
Usage: { $addToSet : { フィールド : 値 } }
配列に値を追加します。値が配列にない場合にのみ追加します。例:
> db.test0.update( { "_id" : 15 } , { $addToSet : { "test1": {$each : ["444","555"] } } } );
> db.test0 .find( { "_id" : 15 } );
{ "_id" : { "floatAbout" : 15 }, "count" : 18, "test1" : [
"aaa",
"bbb",
"ccc ",
[
"ddd",
"eee"
],
"fff",
"ggg",
[
"111",
"222"
],
"444",
"555"
]、"test2" : [ "ccc" ]、"test4" : "testv4"、"test5" : "OK" }
> db.test0.update( { "_id" : 15 } , { $addToSet : { " test1": {$each : ["444","555"] } } } );
> db.test0.find( { "_id" : 15 } );
{ "_id" : { "floatAbout" : 15 }, "count" : 18, "test1" : [
"aaa",
"bbb",
"ccc",
[
"ddd",
"eee"
],
"fff",
"ggg ",
[
"111",
"222"
],
"444",
"555"
], "test2" : [ "ccc" ], "test4" : "testv4", "test5" : "OK" }
> db.test0.update( { "_id" : 15 } , { $addToSet : { "test1": ["444","555"] } } );
> db.test0.find( { "_id" : 15 } );
{ "_id" : { "floatAbout" : 15 }, "count" : 18, "test1" : [
"aaa",
"bbb",
"ccc",
[
「ddd」、
「eee」
]、
「fff」、
「ggg」、
[
「111」、
「222」
]、
「444」、
「555」、
[
] "444",
"555"
]
], "test2" : [ "ccc" ], "test4" : "testv4", "test5" : "OK" }
> db.test0.update( { "_id " : 15 } , { $addToSet : { "test1": ["444","555"] } } );
> db.test0.find( { "_id" : 15 } );
{ "_id" : { "floatAbout" : 15 }, "count" : 18, "test1" : [
"aaa",
"bbb",
"ccc",
[
"ddd",
"eee"
],
" fff",
"ggg",
[
"111",
"222"
],
"444",
"555",
[
"444",
"555"
]
], "test2 " : [ "ccc" ], "test4" : "testv4", "test5" : "OK" }
7) $pop
配列内の値を削除します
Usage:
最後の値を削除します: { $pop : { field : 1 } }
最初の値を削除します: { $pop : { field : -1 } }
削除できる値は 1 つだけであることに注意してください。つまり、使用できるのは 1 または -1 だけであり、Use は使用できません。 2 つの項目を削除するには 2 または -2。 mongodb 1.1 以降のバージョンのみを使用できます。例:
> db.test0.find( { "_id" : 15 } );
{ "_id" : { "floatAbout" : 15 }, "count" : 18, " test1" : [
"bbb",
"ccc",
[
"ddd",
"eee"
],
"fff",
"ggg",
[
"111",
"222"
],
"444"
]、"test2" : [ "ccc" ]、"test4" : "testv4"、"test5" : "OK" }
> db.test0.update( { "_id" : 15 } , { $pop : { "test1": -1 } } );
> db.test0.find( { "_id" : 15 } );
{ "_id" : { "floatAbout" : 15 }, "count " : 18, "test1" : [
"ccc",
[
"ddd",
"eee"
],
"fff",
"ggg",
[
"111",
"222"
] ,
"444"
], "test2" : [ "ccc" ], "test4" : "testv4", "test5" : "OK" }
> db.test0.update( { "_id" : 15 } , { $pop : { "test1" : 1 } } );
> db.test0.find( { "_id" : 15 } );
{ "_id" : { "floatAbout" : 15 }, "count" : 18 、 "test1" : [ "ccc"、 [ "ddd"、 "eee" ]、 "fff"、 "ggg"、 [ "111"、 "222" ] ]、 "test2" : [ "ccc" ]、 " test4" : "testv4",
"test5" : "OK" }
8) $pull
Usage: $pull : { field : value } }
value と等しい値を配列フィールドから削除します。例:
> db.test0.find( { "_id" : 15 } );
{ "_id" : { "floatAbout" : 15 }, "count" : 18, "test1" : [ "ccc", [ " ddd", "eee" ], "fff", "ggg", [ "111", "222" ] ], "test2" : [ "ccc" ], "test4" : "testv4",
"test5" : "OK" }
> db.test0.update( { "_id" : 15 } , { $pull : { "test1": "ggg" } } );
> db.test0.find( { "_id" : 15 } );
{ "_id" : { "floatAbout" : 15 }, "count" : 18, "test1" : [ "ccc", [ "ddd", "eee" ], "fff", [ "111 ", "222" ] ], "test2" : [ "ccc" ], "test4" : "testv4", "test5"
: "OK" }
9) $pullAll
使用法: { $pullAll : { field : value_array } }
$pullと同様に、配列内の複数の値を一度に削除できます。例:
> db.test0.find( { "_id" : 15 } );
{ "_id" : { "floatAbout" : 15 }, "count" : 18, "test1" : [ "ccc", [ " ddd", "eee" ], "fff", [ "111", "222" ] ], "test2" : [ "ccc" ], "test4" : "testv4", "test5"
: "OK" }
> db.test0.update( { "_id" : 15 } , { $pullAll : { "test1": [ "ccc" , "fff" ] } } );
> db.test0.find( { "_id " : 15 } );
{ "_id" : { "floatAbout" : 15 }, "count" : 18, "test1" : [ [ "ddd", "eee" ], [ "111", "222" ] ], "test2" : [ "ccc" ], "test4" : "testv4", "test5" : "OK" }
10) $ 演算子
$ は独自の意味で、次に従って調べることを意味します。条件 配列内の項目はそれ自体です。
> t.find()
{ "_id" : ObjectId("4b97e62bf1d8c7152c9ccb74"), "title" : "ABC", "comments" : [ { "by" : "joe", "votes" : 3 }, { "by" : "jane", "votes" : 7 } ] }
> t.update( {'comments.by':'joe'}, {$inc:{'comments.$.votes':1} }, false, true )
> t.find()
{ "_id" : ObjectId("4b97e62bf1d8c7152c9ccb74"), "title" : "ABC", "comments" : [ { "by" : "joe", "投票" : 4 }, { "投稿者" : "ジェーン", "投票" : 7 } ] }
$ は最初に見つかった配列項目のみを適用し、残りは無視されることに注意してください。例を見てみましょう:
> t.find();
{ "_id" : ObjectId("4b9e4a1fc583fa1c76198319"), "x" : [ 1, 2, 3, 2 ] }
> t.update({x : 2 }, {$inc: {"x.$": 1}}, false, true);
> t.find();
$ を $unset と一緒に使用すると、null が残ることにも注意してくださいただし、{$pull:{x:null}} を使用すると、null のすべての配列項目を削除できます。例:
> t.insert({x: [1,2,3,4,3,2,3,4]})
> t.find()
{ "_id" : ObjectId("4bde2ad3755d00000000710e"), "x" : [ 1, 2, 3, 4, 3, 2, 3, 4 ] }
> t.update({x:3}, {$unset:{"x.$":1}})
> t.find()
{ "_id" : ObjectId("4bde2ad3755d00000000710e"), "x" : [ 1, 2, null, 4, 3, 2, 3, 4 ] }
{ "_id" : ObjectId("4b9e4a1fc583fa1c76198319"), "x" : [ 1, 3, 3, 2 ] }
Mongodb でのインデックスの作成:
db.[テーブル名].ensureIndex({num1: 1,num2 :-1}) num1 と num2 は、インデックスを作成するために使用されるフィールドです。
(1) どのような種類のクエリが実行されるか。どのキーにインデックスを付ける必要があるか?
(2). 各キーのインデックスの方向は何ですか?
(3). 拡張にどう対処するか?頻繁に使用されるデータをより多くメモリに保持できるように、別のキーの配置はありますか。
db.[テーブル名].ensureIndex({num1: 1,num2:-1}, {"background":true})//長期インデックスを変更します
db.runCommand({"dropIndexes": "foo", "index":"alphabet"})
すべてのインデックスを削除したい場合は、indexの値を*に代入できます。
Mongodb のマスター/スレーブ レプリケーション
マスター/スレーブ レプリケーションは、データベースのバックアップ、障害回復、読み取り拡張などに使用できます。 (現在、スレーブ ノードから複製するメカニズムはありません)。
1. mongod –master を実行してマスターサーバーを起動します。
2. mongod –slave –source master_address を実行してスレーブサーバーを起動します。 (master_address はマスター ノードのアドレスです)
3. マスター ノードのディレクトリを作成し、ポート (10000) をバインドします:
$mkdir –p ~/dbs/master
$ ./mongod –dbpath ~/dbs/master –port 10000 –master
4. スレーブノードのディレクトリを設定します (別のディレクトリとポートを選択します)
$mkdir –p ~/dbs/slave
$ ./mongod –dbpath ~/dbs/slave –port 10001 –slave –source
localhost: 10000
オプション: -only (スレーブ ノードから特定のデータベースのみをコピーするように指定します)
-slavelay (マスター ノードの操作を適用するときに遅延を増やすためにスレーブ ノードで使用されます)
-fastsync (に基づく)マスター ノードのデータ スナップショット) スレーブ ノードを起動し、マスターとスレーブの同期を実装します)
-autoresync (マスターとスレーブの同期を自動的に復元します)
-oplogSize (マスター ノードの oplog のサイズ (MB))
3 つ。 Mongodb の GridFS
mongodb は大規模なデータ ストレージをサポートしているため、mongodb には大規模なデータ ストレージをサポートできる分散ファイル システム GirdFS も付属しています。mongodb には最大サイズ 4MB の BSON ドキュメント オブジェクトもあり、大量のデータを保存できます。データの。サイズ制限がない場合でも、BSON はビッグデータに対する高速範囲クエリを満たすことができないため、mongodb は GridFS を導入しました。
4. PHP のコードを使用したテスト:
MySQL と同様、mongoDB は PHP 拡張ライブラリ .dll の形式で PHP と統合されています。
次の Web サイトにアクセスして、Windows で対応する PHP バージョンの dll ファイルをダウンロードします:
http://cn.php.net/manual/en/mongo.installation.php#mongo.installation.windows
PHP に従ってバージョンとスレッド セキュリティ (phpinfo で表示可能) かどうかなどを確認して、対応するバージョンを選択してダウンロードし、解凍し、php_mongo.dll ファイルを取得します。これを PHP インストール ディレクトリの ext ディレクトリにコピーします。 php.ini ファイルに extension = php_mongo.dll を追加します。
Web サーバー (Apache または nginx) を再起動します。 phpinfo で mingoDB 情報を確認できるはずです。そうでない場合は、インストールに問題があります。ダウンロードした mingoDB 拡張機能が間違っている可能性があります。
Php は mongodb を操作します
1. mongoDB との接続を確立します:
mongo クラスを直接インスタンス化して接続を作成します:
$mo = new Mongo();//Mongo 接続オブジェクトを取得します
Mongo クラスをインスタンス化し、それをデフォルト localhost:27017 ポートで mongoDB への接続を確立します。
他のホストに接続したい場合は、次のように記述できます:
$mongo = new Mongo("mongodb://username:password@192.168.1.22:12345");
もう 1 つの方法は、mongo クラスをインスタンス化し、次に手動で接続を確立します:
$mongo= newMongo("mongodb://username:password@192.168.1.22:12345", array('connect'=>false));//初期化クラス
$mongo->connect( );/ / 接続を作成します
Mongo クラスのいくつかの便利なメソッド:
Mongo::listDBs()
現在の mongo サービスのライブラリ (DB) 情報を含む配列を返します。
$mo = new Mongo();
$dbs = $mo->listDBs();//データベース情報を含む配列を取得します
Mongo::selectCollection($db,$coll)
現在の接続コレクションの下の配列を返しますデータベース内のオブジェクト。
$mo = new Mongo();
$coll = $mo->selectCollection('db','mycoll');//コレクション オブジェクトを取得します
必要なデータベース (Mongo クラス) を選択します:
一方向:
$ mongo = new Mongo();
$db = $mongo->foo;//MongoDB オブジェクトを取得します
別の方法:
$mongo = new Mongo();
$db = $mongo->selectDB( 'foo') ;//MongoDB オブジェクトを取得します
MongoDB の便利な関数:
MongoDB オブジェクトを作成します
$mo = new Mongo();
$db = new MongoDB($mo,'dbname');//Pass MongoDB オブジェクトを作成します
現在の DB を削除します
$db = $mo->dbname;
$db->drop();
現在のデータベース名を取得します
$db = $mo->dbname;
$db->_tostring ();
Select目的のコレクション:
A:
$mo = new Mongo();
$coll = $mo->dbname->collname;//コレクション オブジェクトを取得します
B:
$db = $mo ->selectDB('dbname ');
$coll = $db->collname;
C:
$db = $mo->dbname;
$coll = $db->selectCollectoin('collname');// コレクション オブジェクトを取得します
データの挿入 (MongoCollection オブジェクト):
MongoCollection::insert(array $a,array $options)
array $a 挿入される配列
array $options options
safe 演算結果情報を返すかどうか
fsync に直接挿入するかどうか物理ハードディスク
$coll = $mo->db->foo;
$a = array('a'=>'b');
$options = array('safe'=>true);
$ rs =$coll- >insert($a,$options);
$rs は操作情報を含む配列型の配列です
データベース内のレコードを削除します (MongoCollection オブジェクト):
MongoCollection::remove(array $criteria,array $ options)
array $criteria Condition
array $options Options
safe 演算結果を返すかどうか
fsync 物理ハードディスクに直接影響するかどうか
justOne 1つのレコードにのみ影響するかどうか
$coll = $mo->db-> coll;
$c = array( 'a'=>1,'s'=>array('$lt'=>100));
$options = array('safe'=>true);
$rs = $coll->remove($c ,$options);
$rs は操作情報を含む配列型の配列です
データベース内のレコードを更新します (MongoCollection オブジェクト):
MongoCollection::update(array $criceria,array $newobj, array $options)
array $ criteria 条件
array $newobj 更新する内容
array $options オプション
safe 演算結果を返すかどうか
fsync 物理ハードディスクに直接影響するかどうか
upsert 物理ハードディスクがある場合に新規追加するかどうか一致するデータはありません
multiple 条件を満たすすべてのレコードに影響するかどうか、デフォルトでは 1 つの項目のみが影響を受けます
$coll = $mo->db->coll;
$c = array('a'=>1, 's'=>array('$lt'=>100));
$newobj = array('e'=>'f','x'=>'y');
$options = array('safe '=>true,'multiple'=>true);
$rs = $ coll->remove($c,$newobj,$options);
$rs は操作情報を含む配列型の配列です
コレクションをクエリして単一レコードの取得 (MongoCollection クラス):
array MongoCollection::findOne(array $query, array $fields)
array $query 条件
array $fields 取得するフィールド
$coll = $mo->db-> coll;
$query = array('s'=>array('$lt'=> 100));
$fields = array('a'=>true,'b'=>true);
$rs = $coll->findOne($query,$fields);
結果があれば配列を返し、結果がなければNULLを返します
複数のレコードを取得するクエリコレクション(MongoCollectionクラス):
MongoCursor MongoCollection::find (array $query, array $fields)
array $query 条件
array $fields 取得するフィールド
$ coll = $mo->db->coll;
$query = array('=>array(' $lt'=>100));
$fields = array('a'=>true,'b' =>true);
$cursor = $coll->find($query,$fields);
を返しますカーソル レコード オブジェクト MongoCursor。

PHPは主に手順プログラミングですが、オブジェクト指向プログラミング(OOP)もサポートしています。 Pythonは、OOP、機能、手続き上のプログラミングなど、さまざまなパラダイムをサポートしています。 PHPはWeb開発に適しており、Pythonはデータ分析や機械学習などのさまざまなアプリケーションに適しています。

PHPは1994年に発信され、Rasmuslerdorfによって開発されました。もともとはウェブサイトの訪問者を追跡するために使用され、サーバー側のスクリプト言語に徐々に進化し、Web開発で広く使用されていました。 Pythonは、1980年代後半にGuidovan Rossumによって開発され、1991年に最初にリリースされました。コードの読みやすさとシンプルさを強調し、科学的コンピューティング、データ分析、その他の分野に適しています。

PHPはWeb開発と迅速なプロトタイピングに適しており、Pythonはデータサイエンスと機械学習に適しています。 1.PHPは、単純な構文と迅速な開発に適した動的なWeb開発に使用されます。 2。Pythonには簡潔な構文があり、複数のフィールドに適しており、強力なライブラリエコシステムがあります。

PHPは、多数のWebサイトとアプリケーションをサポートし、フレームワークを通じて開発ニーズに適応するため、近代化プロセスで依然として重要です。 1.PHP7はパフォーマンスを向上させ、新機能を紹介します。 2。Laravel、Symfony、Codeigniterなどの最新のフレームワークは、開発を簡素化し、コードの品質を向上させます。 3.パフォーマンスの最適化とベストプラクティスは、アプリケーションの効率をさらに改善します。

phphassiblasifly-impactedwebdevevermentandsbeyondit.1)itpowersmajorplatformslikewordpratsandexcelsindatabase interactions.2)php'sadaptableability allowsitale forlargeapplicationsusingframeworkslikelavel.3)

PHPタイプは、コードの品質と読みやすさを向上させるためのプロンプトがあります。 1)スカラータイプのヒント:php7.0であるため、基本データ型は、int、floatなどの関数パラメーターで指定できます。 3)ユニオンタイプのプロンプト:PHP8.0であるため、関数パラメーターまたは戻り値で複数のタイプを指定することができます。 4)Nullable Typeプロンプト:null値を含めることができ、null値を返す可能性のある機能を処理できます。

PHPでは、クローンキーワードを使用してオブジェクトのコピーを作成し、\ _ \ _クローンマジックメソッドを使用してクローン動作をカスタマイズします。 1.クローンキーワードを使用して浅いコピーを作成し、オブジェクトのプロパティをクローン化しますが、オブジェクトのプロパティはクローニングしません。 2。\ _ \ _クローン法は、浅いコピーの問題を避けるために、ネストされたオブジェクトを深くコピーできます。 3.クローニングにおける円形の参照とパフォーマンスの問題を避けるために注意し、クローニング操作を最適化して効率を向上させます。

PHPはWeb開発およびコンテンツ管理システムに適しており、Pythonはデータサイエンス、機械学習、自動化スクリプトに適しています。 1.PHPは、高速でスケーラブルなWebサイトとアプリケーションの構築においてうまく機能し、WordPressなどのCMSで一般的に使用されます。 2。Pythonは、NumpyやTensorflowなどの豊富なライブラリを使用して、データサイエンスと機械学習の分野で驚くほどパフォーマンスを発揮しています。


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

WebStorm Mac版
便利なJavaScript開発ツール

SublimeText3 Linux 新バージョン
SublimeText3 Linux 最新バージョン

AtomエディタMac版ダウンロード
最も人気のあるオープンソースエディター

SublimeText3 英語版
推奨: Win バージョン、コードプロンプトをサポート!

SAP NetWeaver Server Adapter for Eclipse
Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。
