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

不言
リリース: 2018-10-17 14:49:39
転載
2169 人が閲覧しました

この記事は、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(<)、$lte(<=)
ログイン後にコピー
 select * from article where read >= 100 and read <= 200
 db.article.find({"read": {"$gte": 100, "lte": 200}})
ログイン後にコピー

条件内

select * from article where author in ("a", "b", "c")
db.article.find({"author": {"$in": ["a", "b", "c"]}})
ログイン後にコピー

like

select * from article where title like "%mongodb%"
db.article.find({"title": /mongodb/})
ログイン後にコピー

count

select count(*) from article
db.article.count()
ログイン後にコピー

等しくない

select * from article where author != "a"
db.article.find({ "author": { "$ne": "a" }})
ログイン後にコピー

Sort

昇順:

select * from article where type = "mongodb" order by read desc
db.article.find({"type": "mongodb"}).sort({"read": -1})
ログイン後にコピー

降順:

select * from article where type = "mongodb" order by read asc
db.article.find({"type": "mongodb"}).sort({"read": 1})
ログイン後にコピー
findOne(): 1 つだけを返すだけでなくクエリ結果には、find() と同じメソッドを使用します。

2.

insert into article(title, author, content) values("mongodb", "tg", "haha")
db.article.insert({"title": "mongodb", "author": "tg", "content": "haha"})
ログイン後にコピー

3. 更新 (更新)

update()

構文:

db.collecion.update(query, update[, options] )

   query : 必选,查询条件,类似find中的查询条件。
   update : 必选,update的对象和一些更新的操作符(如$,$inc...)等
   options:可选,一些更新配置的对象。
   upsert:可选,这个参数的意思是,如果不存在update的记录,是否插入objNew,true为插入,默认是false,不插入。
   multi:可选,mongodb 默认是false,只更新找到的第一条记录,如果这个参数为true,就把按条件查出来多条记录全部更新。
   writeConcern:可选,抛出异常的级别。
ログイン後にコピー

簡単な更新:

update article set title = "mongodb" where read > 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 までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート