MongoDB速查手册

列出所有的数据库

show dbs

显示当前数据

db

创建或者切换数据库

use mydb

删除数据库

db.dropDatabase()

创建集合Collection

db.createCollection('users')

列出数据库所有集合

show collections

插入一行数据/文档

db.posts.insert({
title: '标题1',
body: '内容',
category: 'news',
tags: ['新闻', '事件'],
user: {
name: '张三',
status: 'author'
},
date: Date()
})

插入多行/文档

db.posts.insertMany([
{
title: 'Post Two',
body: 'Body of post two',
category: 'Technology',
date: Date()
},
{
title: 'Post Three',
body: 'Body of post three',
category: 'News',
date: Date()
},
{
title: 'Post Four',
body: 'Body of post three',
category: 'Entertainment',
date: Date()
}
])

获取所有文档

db.posts.find()

获取所有文档,并且美化输出格式

db.find().pretty()

根据字段查询文档

db.posts.find({ category: 'News' })

文档排序

# 升序
db.posts.find().sort({ title: 1 }).pretty()
# 降序
db.posts.find().sort({ title: -1 }).pretty()

统计文档数量

db.posts.find().count()
db.posts.find({ category: 'news' }).count()

限定文档查询行数

db.posts.find().limit(2).pretty()

链式查询,包括limit,排序

db.posts.find().limit(2).sort({ title: 1 }).pretty()

Foreach迭代

db.posts.find().forEach(function(doc) {
print("Blog Post: " + doc.title)
})

查询一行数据

db.posts.findOne({ category: 'News' })

查询返回指定字段

db.posts.find({ title: 'Post One' }, {
title: 1,
author: 1
})

更新文档

db.posts.update({ title: 'Post Two' },
{
title: 'Post Two',
body: 'New body for post 2',
date: Date()
},
{
upsert: true
})

更改指定字段

db.posts.update({ title: 'Post Two' },
{
$set: {
body: 'Body for post 2',
category: 'Technology'
}
})

数字字段自增操作 ($inc)

db.posts.update({ title: 'Post Two' },
{
$inc: {
likes: 5
}
})

重命名字段

db.posts.update({ title: 'Post Two' },
{
$rename: {
likes: 'views'
}
})

删除文档

db.posts.remove({ title: 'Post Four' })

内嵌文档

db.posts.update({ title: 'Post One' },
{
$set: {
comments: [
{
body: 'Comment One',
user: 'Mary Williams',
date: Date()
},
{
body: 'Comment Two',
user: 'Harry White',
date: Date()
}
]
}
})

查询数组里的元素 ($elemMatch)

db.posts.find({
comments: {
$elemMatch: {
user: 'Mary Williams'
}
}
}
)

添加索引

db.posts.createIndex({ title: 'text' })

文本检索

db.posts.find({
$text: {
$search: "\"Post O\""
}
})

大于/小于查询

db.posts.find({ views: { $gt: 2 } })
db.posts.find({ views: { $gte: 7 } })
db.posts.find({ views: { $lt: 7 } })
db.posts.find({ views: { $lte: 7 } })

收藏备用

版权声明:著作权归作者所有。

相关推荐

MongoDB判断数组是否为空的几种方法

记录下MongoDB用于判断数组是否为空的语句。方法一:{"field1.0":{$exists: true}} (推荐)db.testcollection.find({"field1.0":{$exists: true}})方法二:$elemMatch:{$ne:null}db.testcollection.find({"field1":{$elemMatch:{$ne:null}}})方法三:

MongoDB重命名内嵌数组里对象的字段名

MongoDB的$rename操作符是不能对数组的对象进行重命名。如下:{ Field1: "", Field2: [ { NestedField1: "", NestedField2: "" }, { NestedField1: "", NestedField2: "" }, ... ]}如果直接使用$rename操作符对NestedField1重命名:db.testc

卸载使用brew安装的mongodb脚本

这个用来卸载Mac使用brew安装的mongodb。#!/usr/bin/env sh # 检查mongo是否在运行中 launchctl list | grep mongo launchctl unload ~/Library/LaunchAgents/homebrew.mxcl.mongodb.plist launchctl remove homebrew.mxcl.mong

MongoDB使用MapReduce获取Collection所有的键

MongoDB作为一个文档数据库,它不像关系型数据那样有固定的schema。有时我们需要获取Collection集合里所用的键。使用MapReduce获取Collection的键keys= db.runCommand({   "mapreduce" : "test",   "ma