您的位置:首页 > 数据库 > Mongodb

MongoDB 基本操作学习笔记

2017-11-01 13:10 543 查看
// 查看所有数据库
show dbs
// amdin  0.000GB
// local  0.000GB

// 使用数据库
use admin
// switched to db admin

// 创建数据库:向数据库中插入记录
db.user.insert({ 'name': 'wangxi' })
// WriteResult({ "nInserted" : 1 })

// 显示当前数据库
db
// admin

// 查询当前集合中的文档
db.user.find()
// { "_id" : ObjectId("59f7f0088cc643905a25fa7f"), "name" : "wangxi" }

// 根据条件查询(and 条件查询)
db.user.find({ name: 'wangxi', age: '25' })

// 以格式化的方式来显示所有文档
db.col.find().pretty()

// 只返回一个文档
db.col.findOne()

// 跳过指定数量、返回指定数量的文档
db.user.find({}).limit(3).skip(1)

// or 条件查询
db.user.find({ $or: [{ name: 'wangxi'}, { name: 'hanjiaren'}]})
// { "_id" : ObjectId("59f821f8f4bf9a3582c6ef5c"), "name" : "wangxi" }
// { "_id" : ObjectId("59f8222df4bf9a3582c6ef5f"), "name" : "hanjiaren" }

// 条件操作符
db.user.find({ age: { $gt: 20 }}) // 大于
db.user.find({ age: { $lt: 30}}) // 小于
db.user.find({ age: { $gte: 30}}) // 大于等于
db.user.find({ age: { $lte: 30}}) // 小于等于
db.user.find({ age: { $eq: 25}}) // 等于
db.user.find({ age: { $ne: 25}}) // 不等于

// $type 操作符 —— 获取值为指定类型的文档(可以查表获取不同类型的文档对应的编号)
db.col.find({ title: { $type: 2 }})

// 删除当前数据库
db.dropDatabase()
// { "dropped" : "admin", "ok" : 1 }

// 显示当前数据库中的所有集合
show collections / show tables
// user

// 删除指定集合
db.user.drop()
// true

// 更新文档
db.user.update({ name: 'wangxi'}, { $set: { name: 'Raychan' }}, { upsert: true, multi: true })
// WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
db.user.find()
// { "_id" : ObjectId("59f81c6f8cc643905a25fa87"), "name" : "Raychan" }

db.user.update({ name: 'wangxi'}, { $set: { name: 'Raychan' }}, true, true)
db.user.find()
// { "_id" : ObjectId("59f81c6f8cc643905a25fa87"), "name" : "Raychan" }
// { "_id" : ObjectId("59f81ef674a03e811969aa93"), "name" : "Raychan" }

// 删除文档
db.user.remove({ name: 'Raychan' }, true) // 只删除一个文档
// WriteResult({ "nRemoved" : 1 })

// 删除所有文档
db.user.remove({}) // {} 不能少
WriteResult({ "nRemoved" : 5 })

// remove 已经过时,官方推荐使用 deleteOne 和 deleteMany
db.user.deleteOne({ name: 'wangxi'})
// { "acknowledged" : true, "deletedCount" : 1 }

// 排序
db.user.find({}).sort({ age: 1})

// 聚合 $sum、$avg、$max、$min(字段引用要加 $)
db.user.aggregate([{ $group: { _id: '$name', num_of_user: { $sum: 1}}}])
// select name, count(*) from user group by name

// 管道操作
// $project: 修改输入文档的结构。可以用来重命名、增加或删除域,也可以用于创建计算结果以及嵌套文档。
db.user.aggregate({ $project: { _id: 0, name: 1, age: 0 }})
// 0 代表不输出,1 代表输出 类似于 sql 中的 select name from user

// $match: 用于过滤操作
// 筛选 age > 20 的文档
db.user.aggregate({ $match: { age: { $gt: 20 }}})

// $skip: 效果和 find().skip(num) 相同
db.user.aggregate({ $skip: 3 })
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: