跳至主要內容

mongo入门教程

大约 2 分钟...dbmongo入门

mongo入门教程

一、写在前面

1、社区版与企业版

免费与收费

2、Major Release 与 Rapid Release

由于MongoDB支持很多版本和平台,每个发布版本都需在20多个MongoDB支持的平台上进行验证,验证工作量大,降低了MongoDB新功能的交付速度,所以从MongoDB 5.0开始,MongoDB发布的版本将分为Major Release(大版本)和Rapid Releases(快速发布版本),其中Rapid Releases作为开发版本提供下载和测试体验,但不建议用在生产环境。

3、使用的mongo版本
mongo6.0.3版本

4、mongosh
mysql安装后,自带server端和client;

而mongo(6.0.3版本)需要再单独下载一个客户端(mongosh),用来作为命令行中的客户端连接mongo

5、原子性
MongoDB中的所有写操作都是单个文档级别的原子操作

6、执行命令时换行

shift + enter # 换行
ctrl + enter # 执行

二、下载地址

mongo社区版serveropen in new window

mongosh 客户端open in new window

三、mongo启动与连接

1、初始化

mongo启动前,需要手动初始化

tar zxf mongodb-macos-arm64-6.0.3.tgz
cd mongodb-macos-arm64-6.0.3

# 初始化相关文件夹
mkdir -p data/db
mkdir log

2、配置文件

用之前把注释删除

vim mongod.conf

dbpath=data/db      # 与上面创建的data/db一致
logpath=log/mongodb.log # 与上面创建的log一致
logappend=true
fork=true           # 后台运行server 与nohup类似;如果启动报错,可以把这行注释 方便debug

保存配置文件 & 退出

3、启动命令

./bin/mongod -f mongo.conf

报错了注意下报错信息 再看下log/mongodb.log

4、客户端连接

使用下载的mongosh/bin/mongosh 命令连接到刚刚启动的server上

mongosh/bin/mongosh mongodb://127.0.0.1:27017

四、常用命令

test> use microcosm
switched to db microcosm

microcosm> db
microcosm

microcosm> db.mycoll.findOne({_id:ObjectId("639c383fa6a67b63f42adcb1")})
{ _id: ObjectId("639c383fa6a67b63f42adcb1") }

microcosm> db.mycoll.insertOne({name: "sunxuefeng", nickname: "snowin"})
{
  acknowledged: true,
  insertedId: ObjectId("639c3984a6a67b63f42adcb2")
}

microcosm> db.mycoll.insertMany([{name: "uzi"}, {name: "xiaohu"}])
{
  acknowledged: true,
  insertedIds: {
    '0': ObjectId("639c39aba6a67b63f42adcb3"),
    '1': ObjectId("639c39aba6a67b63f42adcb4")
  }
}

microcosm> db.mycoll.find({name: {$in: ["sunxf", "uzi"]}}).pretty()
[
  { _id: ObjectId("639c2da3a6a67b63f42adcaf"), name: 'sunxf' },
  {
    _id: ObjectId("639c2eeaa6a67b63f42adcb0"),
    name: 'sunxf',
    year: 28
  },
  { _id: ObjectId("639c39aba6a67b63f42adcb3"), name: 'uzi' }
]
microcosm> db.mycoll.find({name: "sunxf", year: 28}).pretty()
[
  {
    _id: ObjectId("639c2eeaa6a67b63f42adcb0"),
    name: 'sunxf',
    year: 28
  }
]

microcosm> db.mycoll.find({$or: [{name: 'sunxf'}, {name: 'uzi'}]})
[
  { _id: ObjectId("639c2da3a6a67b63f42adcaf"), name: 'sunxf' },
  {
    _id: ObjectId("639c2eeaa6a67b63f42adcb0"),
    name: 'sunxf',
    year: 28
  },
  { _id: ObjectId("639c39aba6a67b63f42adcb3"), name: 'uzi' }
]

microcosm> db.mycoll.updateOne( { name: 'uzi' }, { $set: { year: 27 } })
{
  acknowledged: true,
  insertedId: null,
  matchedCount: 1,
  modifiedCount: 1,
  upsertedCount: 0
}
microcosm> db.mycoll.findOne(
... {name: 'uzi'}
... )
{ _id: ObjectId("639c39aba6a67b63f42adcb3"), name: 'uzi', year: 27 }

microcosm> db.mycoll.replaceOne(
... {name: 'uzi'},
... {name: 'uzi', year: 27, pos: 'adc'}
... )
{
  acknowledged: true,
  insertedId: null,
  matchedCount: 1,
  modifiedCount: 1,
  upsertedCount: 0
}
microcosm> db.mycoll.findOne( { name: 'uzi' })
{
  _id: ObjectId("639c39aba6a67b63f42adcb3"),
  name: 'uzi',
  year: 27,
  pos: 'adc'
}

参考

https://docs.mongoing.com/open in new window

上次编辑于:
评论
  • 按正序
  • 按倒序
  • 按热度
Powered by Waline v2.15.6