ホームページ  >  記事  >  データベース  >  MongoDB でよく使用されるステートメントの概要

MongoDB でよく使用されるステートメントの概要

不言
不言転載
2018-10-17 14:49:392116ブラウズ

この記事は、MongoDB でよく使用されるステートメントをまとめたものです。必要な方は参考にしていただければ幸いです。

Mongodb ステートメントを理解するのが難しいと感じる場合は、SQL ステートメントと比較すると、より簡単に学習できるでしょう。

1. クエリ (検索)

すべての結果をクエリ

select * from article
db.article.find()

返すキーを指定

select title, author from article
db.article.find({}, {"title": 1, "author": 1})

where 条件

select * from article where title = "mongodb"
db.article.find({"title": "mongodb"})

and 条件

select * from article where title = "mongodb" and author = "god"
db.article.find({"title": "mongodb", "author": "god"})

or 条件

select * from article where title = "mongodb" or author = "god"
db.article.find({"$or": [{"title": "mongodb"}, {"author": "god"}]})

比較条件

select * from article where read >= 100;
db.article.find({"read": {"$gt": 100}})
> $gt(>)、$gte(>=)、$lt(d465e952edbc4325ec7a8892c05fa947= 100 and read 088b8cc45dbed04b58b0ab06a945efe0 100
db.article.update({"read": {"$gt": 100}}, {"$set": { "title": "mongodb"}})

save()

db.article.save({_id: 123, title: "mongodb"})

上記のステートメントでは、コレクション内に _id 123 のドキュメントが既に存在する場合は、対応するフィールドを更新します。それ以外の場合は、挿入します。

注: 更新オブジェクト _id が存在しない場合、システムはそれを自動的に生成し、新しいドキュメントとして挿入します。

更新演算子

MongoDB は、いくつかの強力な更新演算子を提供します。

特定のフィールドの更新 ($set):

update game set count = 10000 where _id = 123
db.game.update({"_id": 123}, { "$set": {"count": 10000}})

特定のフィールドの削除 ($unset):

注: $unset の指定されたフィールドの値は、任意の法的値を指定できます。
インクリメントまたはデクリメント ($inc)

 db.game.update({"_id": 123}, { "$inc": {"count": 10}}) // 每次count都加10

> 注: $inc に対応するフィールドは数値である必要があり、インクリメントまたはデクリメントする値も数値である必要があります。

配列の追加 ($push):

 db.game.update({"_id": 123}, { "$push": {"score": 123}})

一度に複数の要素を追加することもできます:

 db.game.update({"_id": 123}, {"$push": {"score": [12,123]}})

注: 追加されるフィールドは配列。配列フィールドが存在しない場合は、自動的に追加されて追加されます。

一度に複数の要素を追加 ($pushAll):

 db.game.update({"_id": 123}, {"$pushAll": {"score": [12,123]}})

非繰り返し要素を追加 ($addToSet):

$addToSet はセットに似ていますこの場合のみ設定します。 値が要素内にない場合にのみ増加します:

 db.game.update({"_id": 123}, {"$addToSet": {"score": 123}})

要素の削除 ($pop):

db.game.update({"_id": 123}, {"$pop": {"score": 1}})  // 删除最后一个元素
db.game.update({"_id": 123}, {"$pop": {"score": -1}})  // 删除第一个元素

注: $pop は 1 つの要素のみを削除できます。一度に配列、1 は削除を意味します。最後の配列、-1 は最初の配列を削除します。

特定の要素の削除 ($pull):

db.game.update({"_id": 123}, {"$pull": {"score": 123}})

上記のステートメントは、配列スコア内で値が 123 に等しい要素を削除することを意味します。

複数の特定の要素を削除 ($pullAll):

db.game.update({"_id": 123}, {"$pullAll": {score: [123,12]}})

上記のステートメントは、配列内の値が 123 または 12 に等しい要素を削除することを意味します。
ネストされた配列の値を更新します:
配列の添字を使用します (0 から始まります):

{
    address: [{place: "nanji", tel: 123}, {place: "dongbei", tel: 321}]
}
 db.game.update({"_id": 123}, {"$set": {"address.0.tel": 213}})

配列のどの項目を更新するかわからない場合は、次のことができます。 $ 演算子を使用します ( $ はそれ自体を表します。つまり、クエリ条件に従って見つかった配列内の項目自体を表し、最初に見つかった配列項目のみが使用されます):

 db.game.update({"address.place": "nanji"}, {"$set": {"address.$.tel": 123}})

上記の場合ステートメント、$ はクエリです。条件 {"address.place": "nanji"} のクエリ結果は {place: "nanji", tel: 123} であるため、{"address.$.tel": 123} も同様です{"address.{place : "nanji", tel: 123}.tel": 123}

4. 削除 (削除)

すべて削除します。ドキュメント:

delete from article
db.article.remove()

指定されたドキュメントを削除します:

 delete from article where title = "mongodb"
 db.article.remove({title: "mongodb"})

以上がMongoDB でよく使用されるステートメントの概要の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はsegmentfault.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。