ユーザ用ツール

サイト用ツール


mongodb:query

差分

このページの2つのバージョン間の差分を表示します。

この比較画面へのリンク

次のリビジョン
前のリビジョン
mongodb:query [2013/05/07 05:28] – 外部編集 127.0.0.1mongodb:query [2025/02/16 13:53] (現在) – 外部編集 127.0.0.1
行 1: 行 1:
-==== 操作系  ====+# query
  
-  * 終了 +## 操作系
-<code> +
-> use admin +
-switched to db admin +
-> db.shutdownServer() +
-</code>+
  
-  * DB一覧取得 +### 終了
-<code> +
-> show dbs +
-local   (empty) +
-test002 0.203125GB +
-testdb  (empty) +
-</code>+
  
-  * DB削除 +  > use admin 
-<code+  switched to db admin 
-> show dbs +  > db.shutdownServer()
-local   (empty) +
-test002 0.203125GB +
-testdb  (empty) +
-> use test002 +
-switched to db test002 +
-> db.dropDatabase() +
-{ "dropped" : "test002", "ok" : 1 } +
-> show dbs +
-local   (empty) +
-testdb  (empty) +
-</code>+
  
-  * コレクション削除 +### DB一覧取得
-<code> +
->db.[コレクション名].drop() +
-</code>+
  
-  * カレントDBを確認 +  > show dbs 
-<code+  local   (empty) 
-> db +  test002 0.203125GB 
-testdb +  testdb  (empty)
-</code>+
  
-  * カレントDBのコレクション一覧取得  +### DB削除
-<code> +
-> show collections +
-system.indexes +
-testcol +
-testdata +
-</code>+
  
-  * 最適化(※db容量と同等の空き容量がシステムに必要) +  > show dbs 
-<code+  local   (empty) 
-> use test002 +  test002 0.203125GB 
-switched to db test002 +  testdb  (empty) 
-> db.repairDatabase() +  > use test002 
-</code>+  switched to db test002 
 +  > db.dropDatabase() 
 +  { "dropped" : "test002", "ok" : 1 } 
 +  show dbs 
 +  local   (empty) 
 +  testdb  (empty)
  
-  * キーのリネーム+### コレクション削除 
 + 
 +  >db.[コレクション名].drop() 
 + 
 +### カレントDBを確認 
 + 
 +  > db 
 +  testdb 
 + 
 +### カレントDBのコレクション一覧取得  
 + 
 +  > show collections 
 +  system.indexes 
 +  testcol 
 +  testdata 
 + 
 +### 最適化(※db容量と同等の空き容量がシステムに必要) 
 + 
 +  > use test002 
 +  switched to db test002 
 +  > db.repairDatabase() 
 + 
 +### キーのリネーム
 http://docs.mongodb.org/manual/core/update/#Updating-%24rename http://docs.mongodb.org/manual/core/update/#Updating-%24rename
-<code> 
-> db.test002.update({},{$rename:{"oldname":"newname"}},false,true); 
-</code> 
-==== 一般  ==== 
  
-<code+  db.test002.update({},{$rename:{"oldname":"newname"}},false,true); 
-> db.コレクション名.処理種別( { 検索条件 } , { 取得項目 }  ) + 
-</code>+## 一般 
 + 
 +  > db.コレクション名.処理種別( { 検索条件 } , { 取得項目 }  ) 
 + 
 +  select 
 +      取得カラム(= 取得項目) 
 +  from 
 +      テーブル名(= コレクション名) 
 +  where 
 +      検索条件 
 + 
 + 
 +### コレクション内のレコード数取得  
 + 
 +  > db.testdata.count() 
 +  150 
 + 
 +### コレクション内の先頭1件取得 
 + 
 +  > db.testdata.findOne() 
 +  { 
 +          "_id" : ObjectId("5109be7579ee8df58e8feca6"), 
 +          "entryId" : 1, 
 +          "createdDatetime" : ISODate("2013-01-31T00:44:37.080Z"), 
 +          "name" : "test01" 
 +  } 
 + 
 +### コレクション内のentryId="99"のレコード取得 
 + 
 +  > db.testdata.find({entryId:"99"}) 
 +  ⇒型が違うので、該当なし 
 + 
 +### コレクション内のentryId=99のレコード取得 
 + 
 +  > db.testdata.find({entryId:99}) 
 +  { "_id" : ObjectId("5109be7579ee8df58e8fed08"), "entryId" : 99, "createdDatetime" : ISODate("2013-01-31T00:44:37.086Z"), "name" : "test099"
 + 
 +### コレクション内のentryId=99のレコード件数取得 
 + 
 +  > db.testdata.count({entryId:99}) 
 +  1 
 + 
 +### コレクション内のentryId>99のレコード取得 
 + 
 +  > db.testdata.count( { entryId: { $gt: 99 } } ) 
 +  51 
 + 
 +### コレクション内の99<=entryId<102のレコード件数取得 
 + 
 +  > db.testdata.count( { entryId: { $gte: 99, $lt: 102 } } ) 
 +  3 
 + 
 +### コレクション内の99<=entryId<102のレコードをentryIdの降順に取得 
 + 
 +  > db.testdata.find( { entryId: { $gte: 99, $lt: 102 } } ).sort({entryId:-1}) 
 +  { "_id" : ObjectId("5109be7579ee8df58e8fed0a"), "entryId" : 101, "createdDatetime" : ISODate("2013-01-31T00:44:37.086Z"), "name" : "test0101"
 +  { "_id" : ObjectId("5109be7579ee8df58e8fed09"), "entryId" : 100, "createdDatetime" : ISODate("2013-01-31T00:44:37.086Z"), "name" : "test0100"
 +  { "_id" : ObjectId("5109be7579ee8df58e8fed08"), "entryId" : 99, "createdDatetime" : ISODate("2013-01-31T00:44:37.086Z"), "name" : "test099"
 + 
 +### コレクション内の99<=entryId<102のレコードをentryIdの降順に取得して、整形して表示 
 + 
 +  > db.testdata.find({entryId:{$gte:99,$lt:102}}).sort({entryId:-1}).forEach(printjson) 
 +  { 
 +          "_id" : ObjectId("5109be7579ee8df58e8fed0a"), 
 +          "entryId" : 101, 
 +          "createdDatetime" : ISODate("2013-01-31T00:44:37.086Z"), 
 +          "name" : "test0101" 
 +  } 
 +  { 
 +          "_id" : ObjectId("5109be7579ee8df58e8fed09"), 
 +          "entryId" : 100, 
 +          "createdDatetime" : ISODate("2013-01-31T00:44:37.086Z"), 
 +          "name" : "test0100" 
 +  } 
 +  { 
 +          "_id" : ObjectId("5109be7579ee8df58e8fed08"), 
 +          "entryId" : 99, 
 +          "createdDatetime" : ISODate("2013-01-31T00:44:37.086Z"), 
 +          "name" : "test099" 
 +  } 
 + 
 +### コレクション内の99<=entryId<110のレコードをentryIdの降順に取得して、3件を整形して表示 
 + 
 +  > db.testdata.find({entryId:{$gte:99,$lt:110}}).sort({entryId:-1}).limit(3).forEach(printjson) 
 +  { 
 +          "_id" : ObjectId("5109be7579ee8df58e8fed12"), 
 +          "entryId" : 109, 
 +          "createdDatetime" : ISODate("2013-01-31T00:44:37.087Z"), 
 +          "name" : "test0109" 
 +  } 
 +  { 
 +          "_id" : ObjectId("5109be7579ee8df58e8fed11"), 
 +          "entryId" : 108, 
 +          "createdDatetime" : ISODate("2013-01-31T00:44:37.087Z"), 
 +          "name" : "test0108" 
 +  } 
 +  { 
 +          "_id" : ObjectId("5109be7579ee8df58e8fed10"), 
 +          "entryId" : 107, 
 +          "createdDatetime" : ISODate("2013-01-31T00:44:37.087Z"), 
 +          "name" : "test0107" 
 +  } 
 +  > 
 + 
 +### コレクション内の2013-05-07 13時までのレコード件数取得 
 + 
 +  > db.testdata.find({time: {$gte: ISODate("2013-05-07T13:00:00+09:00")}}).count(); 
 + 
 +### like検索(正規表現)i:大文字小文字を同一視 
 + 
 +  > db.access.find({referer: /192.168.26.141/i}) 
 + 
 +### 特定項目(以下の例ではreferer)のみ取得 
 + 
 +  > db.access.find({}, {referer:1}) 
 +  { "_id" : ObjectId("510b0daeddfe4129a7000002"), "referer" : "http://192.168.26.143/pma/"
 + 
 +### 登録・更新 
 + 
 +  > db.collect.save( { a : 1 } ) 
 +  </code> 
 + 
 +### 削除 
 + 
 +  > db.collect.remove( { a : 1 } ) 
 + 
 +### sql対比
  
-<code> +  { "a": "b" } 
-select +  SELECT * FROM test WHERE a 'b'
-    取得カラム(取得項目) +
-from +
-    テーブル名(= コレクション名) +
-where +
-    検索条件 +
-</code>+
  
 +  { "a": { "$ne"    : "b" } }
 +  SELECT * FROM test WHERE a != 'b'
  
-  * コレクション内のレコード数取得  +  { "a": { "$in"    : [ "b", "c" ] } } 
-<code> +  SELECT FROM test WHERE a IN ('b', 'c')
-> db.testdata.count() +
-150 +
-</code>+
  
-  * コレクション内の先頭1件取得 +  { "a": "$nin  "b", "c] } 
-<code> +  SELECT * FROM test WHERE a NOT IN ('b', 'c')
-> db.testdata.findOne() +
-{ +
-        "_id" : ObjectId("5109be7579ee8df58e8feca6"), +
-        "entryId" : 1, +
-        "createdDatetime: ISODate("2013-01-31T00:44:37.080Z"), +
-        "name: "test01" +
-+
-</code>+
  
-  * コレクション内のentryId="99"のレコード取得 +  "a": "$exists": 0 } 
-<code> +  SELECT * FROM test WHERE a IS NULL
-> db.testdata.find({entryId:"99"}) +
-⇒型が違うので、該当なし +
-</code>+
  
-  * コレクション内のentryId=99のレコード取得 +  { "a": "$exists": 1 } 
-<code> +  SELECT * FROM test WHERE a IS NOT NULL
-> db.testdata.find({entryId:99}) +
-{ "_id" : ObjectId("5109be7579ee8df58e8fed08"), "entryId" : 99, "createdDatetime" : ISODate("2013-01-31T00:44:37.086Z"), "name" : "test099" +
-</code>+
  
-  * コレクション内のentryId=99のレコード件数取得 +  { "a"{ "$lt"    : 1 } 
-<code> +  SELECT * FROM test WHERE a '1'
-> db.testdata.count({entryId:99}+
-1 +
-</code>+
  
-  * コレクション内のentryId>99のレコード取得 +  { "a": { "$gt   } } 
-<code> +  SELECT * FROM test WHERE a '2'
-> db.testdata.count( entryId: { $gt: 99 } } ) +
-51 +
-</code>+
  
-  * コレクション内の99<=entryId<102のレコード件数取得 +  { "a": { "$lte"   } } 
-<code> +  SELECT * FROM test WHERE a <= '3'
-> db.testdata.count( entryId: { $gte99, $lt: 102 } } ) +
-3 +
-</code>+
  
-  * コレクション内の99<=entryId<102のレコードをentryIdの降順に取得 +  { "a": { "$gte  } } 
-<code> +  SELECT * FROM test WHERE a >= '4'
-> db.testdata.find( { entryId: { $gte: 99, $lt: 102 } } ).sort({entryId:-1}) +
-{ "_id" : ObjectId("5109be7579ee8df58e8fed0a"), "entryId" : 101, "createdDatetime" : ISODate("2013-01-31T00:44:37.086Z"), "name" : "test0101"+
-{ "_id" : ObjectId("5109be7579ee8df58e8fed09"), "entryId" : 100, "createdDatetime" : ISODate("2013-01-31T00:44:37.086Z"), "name" : "test0100" } +
-{ "_id" : ObjectId("5109be7579ee8df58e8fed08"), "entryId" : 99, "createdDatetime" : ISODate("2013-01-31T00:44:37.086Z"), "name" : "test099" +
-</code>+
  
-  * コレクション内の99<=entryId<102のレコードをentryIdの降順に取得して、整形して表示 +  { "a": "b", "c": "d" } 
-<code> +  SELECT * FROM test WHERE (c = 'd' AND a = 'b')
-> db.testdata.find({entryId:{$gte:99,$lt:102}}).sort({entryId:-1}).forEach(printjson) +
-+
-        "_id" : ObjectId("5109be7579ee8df58e8fed0a"), +
-        "entryId" : 101, +
-        "createdDatetime: ISODate("2013-01-31T00:44:37.086Z"), +
-        "name" : "test0101" +
-+
-+
-        "_id" : ObjectId("5109be7579ee8df58e8fed09")+
-        "entryId" : 100, +
-        "createdDatetime" : ISODate("2013-01-31T00:44:37.086Z"), +
-        "name" : "test0100" +
-+
-+
-        "_id" : ObjectId("5109be7579ee8df58e8fed08"), +
-        "entryId" : 99, +
-        "createdDatetime" : ISODate("2013-01-31T00:44:37.086Z"), +
-        "name" : "test099" +
-+
-</code>+
  
-  * コレクション内の99<=entryId<110のレコードをentryIdの降順に取得して、3件を整形して表示 +  { "$and"{ "a": "b}, { "a": "d} ] 
-<code> +  SELECT * FROM test WHERE (a = 'b' AND a = 'd')
-> db.testdata.find({entryId:{$gte:99,$lt:110}}).sort({entryId:-1}).limit(3).forEach(printjson) +
-+
-        "_id" : ObjectId("5109be7579ee8df58e8fed12"), +
-        "entryId" : 109, +
-        "createdDatetime" : ISODate("2013-01-31T00:44:37.087Z"), +
-        "name" : "test0109" +
-+
-{ +
-        "_id" : ObjectId("5109be7579ee8df58e8fed11"), +
-        "entryId" : 108, +
-        "createdDatetime" : ISODate("2013-01-31T00:44:37.087Z"), +
-        "name" : "test0108" +
-+
-+
-        "_id" : ObjectId("5109be7579ee8df58e8fed10")+
-        "entryId" : 107, +
-        "createdDatetime" : ISODate("2013-01-31T00:44:37.087Z"), +
-        "name" : "test0107" +
-+
-+
-</code>+
  
-  * コレクション内の2013-05-07 13時までのレコード件数取得 +  { "$or""a": "b" }, { "c": "d" } 
-<code> +  SELECT * FROM test WHERE (a = 'b' OR c = 'd')
-> db.testdata.find({time: {$gteISODate("2013-05-07T13:00:00+09:00")}}).count()+
-</code>+
  
-  * like検索(正規表現)i:大文字小文字を同一視 +  { "$or"[ { "a": "b", "c": "d" }, { "e": "f" } ] 
-<code> +  SELECT * FROM test WHERE ((c = 'd' AND a = 'b') OR e = 'f')
-> db.access.find({referer/192.168.26.141/i}) +
-</code>+
  
-  * 特定項目(以下の例ではreferer)のみ取得 +  { "a": "b""$or"{ "c": "d}"e": "f} ] 
-<code> +  SELECT * FROM test WHERE (a = 'b' AND (c = 'd' OR e = 'f'))
-> db.access.find({}{referer:1}) +
-{ "_id" : ObjectId("510b0daeddfe4129a7000002"), "referer" : "http://192.168.26.143/pma/" } +
-</code>+
  
-  * 登録・更新 +  { "$or": [ { "a""b", "c": "d" }, { "e": "f", "g": "h" } ] 
-<code> +  SELECT * FROM test WHERE ((c = 'd' AND a = 'b') OR (e = 'f' AND g = 'h'))
-> db.collect.save( { a : ) +
-</code>+
  
-  * 削除 +  { "$and": [ { "$or": [ { "a""b" }, { "c": "d" } ] }, { "$or" : [ { "e": "f" }, { "g": "h" } ] } ] 
-<code> +  SELECT * FROM test WHERE ((a = 'b' OR c = 'd') AND (e = 'f' OR g = 'h'))
-> db.collect.remove( { a : ) +
-</code>+
  
-  * sql対比 
-<code> 
-{ "a": "b" } 
-SELECT * FROM test WHERE a = 'b' 
-  
-{ "a": { "$ne"    : "b" } } 
-SELECT * FROM test WHERE a != 'b' 
-  
-{ "a": { "$in"    : [ "b", "c" ] } } 
-SELECT * FROM test WHERE a IN ('b', 'c') 
-  
-{ "a": { "$nin"   : [ "b", "c" ] } } 
-SELECT * FROM test WHERE a NOT IN ('b', 'c') 
-  
-{ "a": { "$exists": 0 } } 
-SELECT * FROM test WHERE a IS NULL 
-  
-{ "a": { "$exists": 1 } } 
-SELECT * FROM test WHERE a IS NOT NULL 
-  
-{ "a": { "$lt"    : 1 } } 
-SELECT * FROM test WHERE a < '1' 
-  
-{ "a": { "$gt"    : 2 } } 
-SELECT * FROM test WHERE a > '2' 
-  
-{ "a": { "$lte"   : 3 } } 
-SELECT * FROM test WHERE a <= '3' 
-  
-{ "a": { "$gte"   : 4 } } 
-SELECT * FROM test WHERE a >= '4' 
-  
-{ "a": "b", "c": "d" } 
-SELECT * FROM test WHERE (c = 'd' AND a = 'b') 
-  
-{ "$and": [ { "a": "b" }, { "a": "d" } ] } 
-SELECT * FROM test WHERE (a = 'b' AND a = 'd') 
-  
-{ "$or": [ { "a": "b" }, { "c": "d" } ] } 
-SELECT * FROM test WHERE (a = 'b' OR c = 'd') 
-  
-{ "$or": [ { "a": "b", "c": "d" }, { "e": "f" } ] } 
-SELECT * FROM test WHERE ((c = 'd' AND a = 'b') OR e = 'f') 
-  
-{ "a": "b", "$or": [ { "c": "d" }, { "e": "f" } ] } 
-SELECT * FROM test WHERE (a = 'b' AND (c = 'd' OR e = 'f')) 
-  
-{ "$or": [ { "a": "b", "c": "d" }, { "e": "f", "g": "h" } ] } 
-SELECT * FROM test WHERE ((c = 'd' AND a = 'b') OR (e = 'f' AND g = 'h')) 
-  
-{ "$and": [ { "$or": [ { "a": "b" }, { "c": "d" } ] }, { "$or" : [ { "e": "f" }, { "g": "h" } ] } ] } 
-SELECT * FROM test WHERE ((a = 'b' OR c = 'd') AND (e = 'f' OR g = 'h')) 
-</code> 
  
mongodb/query.1367904486.txt.gz · 最終更新: 2025/02/16 13:50 (外部編集)