MongoDB的Shell操作方法备忘录

方便的页面

公式 – Formula

MongoDB Javascript API Docs

mondodbのjsの仕様がわかる

Read — MongoDB Manual

findの基本的な使い方の例

Operator Reference — MongoDB Manual

findの範囲指定などのオペレーターの例

SQL to MongoDB Mapping Chart — MongoDB Manual

SQLでの操作とmongodbでの操作の対応表

高度なクエリー – Docs-Japanese – 10gen Confluence

使えるオペレーター一覧、データ型一覧、より高度な使い方など日本語ドキュメント

mongo/jstests at master · mongodb/mongo · GitHub

jsで書かれたmongodbのテスト用スクリプトが大量にある

以下的页面对我很有帮助。

コンソール画面でのコマンド操作 – matsukazの日記

help(), db.runCommands()の一覧

mongoインタラクティブシェルの使い方メモ – ペイパー・プログラマーズ・ダイアリー

ファイルに保存したjsスクリプトを、コマンドラインから実行させたりmongodbのシェル内で呼び出す方法

MongoDBのshellを使い倒す – nifty engineer blog

より発展的・実践的な使いかた、値のassert、組み込みオブジェクトの便利メソッド紹介など


基本操作方法

显示数据库
使用 dbName
显示集合
col = db[collectionName]

帮忙
db帮忙()
col帮忙()

以下是对保存了Twitter streaming API的JSON数据的集合进行操作的示例。

显示文件数量

db.collectionName.count()
db[collectionName].count()
    英数字以外のコレクション名の場合db[collectionName]でアクセスする必要がある

排序, 限制

显示最新的10件

col.find({}).sort({$natural:-1}).limit(10)

只获取匹配到的文档的部分属性。

只显示屏幕名称和正文

col.find({}, {_id:false, "user.screen_name":true, text:true }).sort({$natural:-1}).limit(10)
    入れ子になったプロパティの直接指定は””で囲う

对于找到的文档,执行并显示JavaScript函数。

只显示屏幕名称和正文。

col.find({}).sort({$natural:-1}).limit(10).forEach( function(a){print(a.user.screen_name, ":",  a.text)} )

只显示没有特定属性的文档。

只显示普通推文,不包括转发。

col.find({retweeted_status:{ $exists: false }}).sort({$natural:-1}).limit(5).forEach( function(a){print(a.user.screen_name, ":", a.text )} )

只显示数组属性内容低于某个固定值的文档。

只显示没有转推,且带有不到两个标签的推文。

col.find( { retweeted_status:{$exists:false}, $where:"this.entities.hashtags.length < 2"  }).sort({$natural:-1}).limit(20).forEach( function(a){ print(a.user.screen_name, ':' , a.text); } )
    findの$sizeで指定した個数と一致するものが得られるが範囲指定はできないので、$whereをつかう

使用mongo命令进行参数指定的操作方法。

在本地主机上连接到MongoDB数据库,数据库名称为”dbName”,并执行命令统计集合”collectionName”中的文档数量,命令为–eval ‘db[“collectionName”].count()’,运行时保持静默模式。

又或者

echo 'print(db["collectionName"].count());' > somescript.js
mongo --quiet localhost:27017/dbName somescript.js

可以像这样操作

将查询结果的JSON打印到标准输出并保存在文件中。

echo 'shellPrint(db["collectionName"].find().limit(10)));' > query.js
mongo --quiet localhost:27017/dbName query.js > result.json
    shellPrint()で標準出力にでてくる

将查询结果保存到另一个集合中

广告
将在 10 秒后关闭
bannerAds