• MongoDB 基本操作学习笔记


    // 查看所有数据库
    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 })
  • 相关阅读:
    内存条的物理结构分析【转载】
    JDK动态代理[2]----动态代理设计模式(文章转载于别处)
    shell 计算
    如何使用Vagrant创建linux环境(MacOS版)
    JavaFreemarker01快速上手
    7、验证信息
    6、更新文档
    5、删除文档
    4、查询文档02
    3、查询文档01
  • 原文地址:https://www.cnblogs.com/wx1993/p/7765970.html
Copyright © 2020-2023  润新知