声明:以下内容改编于廖雪峰的MongoDB菜鸟教程http://www.runoob.com/mongodb/mongodb-tutorial.html,个人在学习过程中进行了总结和适当的更改。
# 向集合中插入文档
document = {
title: 'MongoDB教程',
description: 'MongoDB是一个Nosql数据库',
by: '菜鸟教程',
url: 'http://www.runoob.com',
tags: ['mongodb', 'database', 'NoSQL'],
likes: 100
}
db.col.insert(document)
# 更新查询到的第一条文档,该文档中其他的域值不会被改变
db.col.update(
{title: 'MongoDB教程'},
{$set: {title : 'MongoDB'}}
)
# 更新查询到的第一条文档,该文档中其他的域会被删除
db.col.update(
{title: 'MongoDB教程'},
{title : 'MongoDB'}
)
# 更新查询到的所有文档,
db.col.update(
{title: 'MongoDB教程'},
{$set: {title : 'MongoDB'}},
{multi: true}
)
# save()通过传入的文档来更新文档,注意传入的文档的_id和待更新的文档的_id要一样
document = {
_id: ObjectId('58b13fc51cbeb594d140366c'),
title: 'MongoDB',
description: 'MongoDB是一个Nosql数据库',
by: 'Runoob',
url: 'http://www.runoob.com',
tags: ['mongodb', 'NoSQL'],
likes: 1000
}
db.col.save(document)
# 删除满足条件的所有文档
db.col.remove({title: 'MongoDB教程'})
# 删除满足条件的一条文档
db.col.remove({title: 'MongoDB教程'}, 1)
# 删除所有文档
db.col.remove({})
# 查询集合,返回所有的文档
db.col.find()
# 查询集合,返回所有的文档,并以易读的形式显示,注意在Robomongo中并没有效果
db.col.find().pretty()
# 查询集合,返回第一条的文档
db.col.findOne()
# 等于
db.col.find({by: '菜鸟教程'})
# 小于
db.col.find({likes: {$lt: 200}})
# 小于或等于
db.col.find({likes: {$lte: 200}})
# 大于
db.col.find({likes : {$gt: 200}})
# 大于或等于
db.col.find({likes: {$gte: 200}})
# 不等于
db.col.find({likes: {$ne: 200}})
# AND条件:传入多个键值,键值之间以逗号相隔
db.col.find({title: 'MongoDB教程', by: '菜鸟教程'})
# OR条件:使用关键词or
db.col.find({$or : [{title: 'MongoDB教程'}, {by: '菜鸟教程'}]})
# AND和OR联合使用
db.col.find({likes: {$lt: 200}, $or: [{title: 'MongoDB教程'}, {by: '菜鸟教程'}]})
# num1 < x< num2
db.col.find({likes: {$gt: 50, $lt: 200}})
# 根据域值的类型来查询
db.col.find({title: {$type: 2}})
# 指定查询结果的数量
db.col.find().limit(2)
# 跳过查询结果的前n条
db.col.find().skip(2)
# sort(key: 1)或者sort(key: -1)来指定排序的字段,其中1表示升序, -1表示降序
db.col.find().sort({likes: -1})
# ensureIndex({key: 1})或者ensureIndex({key: -1})创建索引
db.col.ensureIndex({title: 1, description: -1}, {background: true})
-- background可指定以后台方式创建索引
# 查询当前数据库中的集合
show collections
# 创建新的集合
db.createCollection('mycol')