一、安装

  1. Windows版本下载双击安装

  2. 夸克MongoDB下载

  3. 界面如下,点击localhost:27017连接

二、使用

1. 参考文档

2. 使用

databases

# 查看数据库
show databases
# 创建数据库
use school

collection

# 创建集合
db.createCollection('student')
# 查看集合
show collections
# 删除集合
db.student.drop()

insert

# 插入一条数据
db.student.insertOne({'name':'zs', 'age':14, 'sex':'男'})
# 插入多条数据
school> db.student.insertMany([{'name':'Jone', 'age':66, 'sex':'女'},{'name':'Heri', 'age':23, 'sex':'女'}])
{
  acknowledged: true,
  insertedIds: {
    '0': ObjectId('689fc54ba91bbcb681c73bf9'),
    '1': ObjectId('689fc54ba91bbcb681c73bfa')
  }
}
# 循环插入
school> for (i=20;i<25;i++){db.student.insertOne({'name':'bli','age':i,'sex':'女'})}
{
  acknowledged: true,
  insertedId: ObjectId('689fc61ca91bbcb681c73bff')
}
# save和insert的区别,save存在更新,不存在新增

delete

# 删除一条
school> db.student.deleteOne({'name':'bli'})
{ acknowledged: true, deletedCount: 1 }
# 删除多条
school> db.student.deleteMany({'name':'bli'})
{ acknowledged: true, deletedCount: 4 }

update

school> db.student.updateOne({'name':'Jone'}, {$set:{'name':'Jone', 'age':20}})
{
  acknowledged: true,
  insertedId: null,
  matchedCount: 1,
  modifiedCount: 1,
  upsertedCount: 0
}

find

# 查询所有
school> db.student.find()
[
  {
    _id: ObjectId('689fc3eba91bbcb681c73bf8'),
    name: 'zs',
    age: 12,
    sex: '男'
  }
]
# 查询一条
school> db.student.findOne()
{
  _id: ObjectId('689fc3eba91bbcb681c73bf8'),
  name: 'zs',
  age: 12,
  sex: '男'
}
school> db.student.findOne({'name':'Jone'})
{
  _id: ObjectId('689fc54ba91bbcb681c73bf9'),
  name: 'Jone',
  age: 20,
  sex: '女'
}
school> db.student.findOne({'name':{'$eq':'Jone'}})
{
  _id: ObjectId('689fc54ba91bbcb681c73bf9'),
  name: 'Jone',
  age: 20,
  sex: '女'
}
# lt(less than)
school> db.student.find({'age':{'$lt':20}})
[
  {
    _id: ObjectId('689fc3eba91bbcb681c73bf8'),
    name: 'zs',
    age: 12,
    sex: '男'
  }
]
# lte
school> db.student.find({'age':{'$lte':20}})
[
  {
    _id: ObjectId('689fc3eba91bbcb681c73bf8'),
    name: 'zs',
    age: 12,
    sex: '男'
  },
  {
    _id: ObjectId('689fc54ba91bbcb681c73bf9'),
    name: 'Jone',
    age: 20,
    sex: '女'
  }
]
# ne
school> db.student.find({'age':{'$ne':20}})
[
  {
    _id: ObjectId('689fc3eba91bbcb681c73bf8'),
    name: 'zs',
    age: 12,
    sex: '男'
  },
  {
    _id: ObjectId('689fc54ba91bbcb681c73bfa'),
    name: 'Heri',
    age: 23,
    sex: '女'
  }
# nin
school> db.student.find({'age':{'$nin':[12, 23]}})
[
  {
    _id: ObjectId('689fc54ba91bbcb681c73bf9'),
    name: 'Jone',
    age: 20,
    sex: '女'
  }
]
# or
school> db.student.find({$or:[{'name':'Jone'}, {'age':23}]})
[
  {
    _id: ObjectId('689fc54ba91bbcb681c73bf9'),
    name: 'Jone',
    age: 20,
    sex: '女'
  },
  {
    _id: ObjectId('689fc54ba91bbcb681c73bfa'),
    name: 'Heri',
    age: 23,
    sex: '女'
  }
]
# 模糊匹配
[
  {
    _id: ObjectId('689fc54ba91bbcb681c73bf9'),
    name: 'Jone',
    age: 20,
    sex: '女'
  },
  {
    _id: ObjectId('689fc54ba91bbcb681c73bfa'),
    name: 'Heri',
    age: 23,
    sex: '女'
  }
]
# regex
school> db.student.find({'name':{$regex:'e'}})
[
  {
    _id: ObjectId('689fc54ba91bbcb681c73bf9'),
    name: 'Jone',
    age: 20,
    sex: '女'
  },
  {
    _id: ObjectId('689fc54ba91bbcb681c73bfa'),
    name: 'Heri',
    age: 23,
    sex: '女'
  }
]
# js
school> db.student.find({$where:function(){return this.age>20}})
[
  {
    _id: ObjectId('689fc54ba91bbcb681c73bfa'),
    name: 'Heri',
    age: 23,
    sex: '女'
  }
]
school> db.student.find({$where:function(){return this.age>20}}).count()
# limit
school> db.student.find().sort({'age':1}
# skip
school> db.student.find().limit(2).skip(1)
# count
school> db.student.find().count()
# distinct
school> db.student.distinct('age')
[ 12, 20, 23 ]
# exists
school> db.student.find({'age':{$exists:true}})

python连接数据库

# 获取连接
client = pymongo.MongoClient('localhost', 27017)
# 指定数据库
db = client.school
# 获取集合
coll = client.school.student
# 查询
res = coll.find()
for s in res:
    print(s)