MongoDB数据库

这篇博客详细介绍了MongoDB的安装配置、基本概念和操作,包括数据库的创建、查看、更新和删除,以及文档的插入、更新和删除。此外,还深入探讨了Java连接MongoDB的方法,包括无密码和有密码的连接方式,以及如何进行集合的创建、获取、插入、查询、更新和删除操作。
摘要由CSDN通过智能技术生成

MongoDB安装及配置

  1. 下载地址

  2. 解压
    目录为D:\ProgramFiles\mongodb-win32-x86_64-2012plus-4.2.5

  3. 创建数据目录

MongoDB将数据目录存储在db下,但这个目录不会主动创建,在mongodb解压目录下创建data/db目录

  1. 创建日志目录

mongodb目录下的data/log

  1. 在bin目录下新建配置文件mongo.config
 logpath=D:\ProgramFiles\mongodb-win32-x86_64-2012plus-4.2.5\data\log\mongod.log  #日志文件
    dbpath=D:\ProgramFiles\mongodb-win32-x86_64-2012plus-4.2.5\data\db   #数据库目录
    logappend=true  #日志追加模式
  1. 配置windows服务

使用命令提示符进入mongodb目录下的bin目录,执行

mongod --config "D:\ProgramFiles\mongodb-win32-x86_64-2012plus-4.2.5\bin\mongo.config" --install --serviceName "MongoDB"
  1. 在cmd中运行services.msc查看服务中是否有MongoDB服务

  2. 设置开机自启动

net start MongoDB
  1. 连接mongodb

在bin目录下执行mongo.exe,进入MongoDB后台,默认链接test文档(数据库)

MongoDB概念解析

SQL术语/概念 MongoDB术语/概念 解释/说明
database database 数据库
table collection 数据库表/集合
row document 数据记录行/文档
column field 数据字段/域
index index 索引
table joins 表连接,MongoDB不支持
primary key primary key 主键,MongoDB自动将_id字段设置为主键

MongoDB 基本操作

创建数据库

use DATABASE_NAME

查看数据库

show dbs

查看当前数据库

db

删除当前数据库

db.dropDatabase()

插入文档

语法格式 : db.COLLECTION_NAME.insert(document)

db.col.insert({
   title: 'MongoDB 教程', 
    description: 'MongoDB 是一个 Nosql 数据库',
    by: 'w3cschool',
    url: 'http://www.w3cschool.cn',
    tags: ['mongodb', 'database', 'NoSQL'],
    likes: 100
})

更新文档

语法格式: db.collection.update(criteria,objNew,upsert,multi)

注意:update似乎无法做到只更新某一个字段的值,即如果在objNew里面只写更改的数据,那么其余的字段值会被删除掉。

update()函数接受以下四个参数:

  • criteria : update的查询条件,类似sql update查询内where后面的。
  • objNew : update的对象和一些更新的操作符(如 , , ,inc…)等,也可以理解为sql update查询内set后面的
  • upsert : 这个参数的意思是,如果不存在update的记录,是否插入objNew,true为插入,默认是false,不插入。
  • multi : mongodb默认是false,只更新找到的第一条记录,如果这个参数为true,就把按条件查出来多条记录全部更新。
document=({
   "user_id" : "QRSTBWN","password" :"QRSTBWN" ,"date_of_join" : "17/10/2010" ,"education" :"M.B.A." 
, "profession" : "MARKETING","interest" : "MUSIC","community_name" :["MODERN MUSIC", "CLASSICAL MUSIC","WESTERN 
MUSIC"],"community_moder_id" : ["MR. BBB","MR. JJJ","MR MMM"],"community_members" : [500,200,1500],"friends_id" :
 ["MMM123","NNN123","OOO123"],"ban_friends_id" :["BAN123","BAN456","BAN789"]});
//-------------------------------------------------------------------------------------------------------------------------
db.userdetails.update({
   "user_id" : "QRSTBWN"},{
   "user_id" : "QRSTBWN","password" :"NEWPASSWORD" 
,"date_of_join" : "17/10/2010" ,"education" :"M.B.A." , "profession" : "MARKETING","interest" : 
"MUSIC","community_name" :["MODERN MUSIC", "CLASSICAL MUSIC","WESTERN MUSIC"],"community_moder_id" : ["MR. 
BBB","MR. JJJ","MR MMM"],"community_members" : [500,200,1500],"friends_id" : ["MMM123","NNN123","OOO123"],"ban_friends_id" :["BAN123","BAN456","BAN789"]});

删除文档

基本语法 :

db.collection.remove(,{justOne:,WirteConcern:})

参数说明:

  • query :(可选)删除的文档的条件。

  • justOne : (可选)如果设为 true 或 1,则只删除一个文档。

  • writeConcern :(可选)抛出异常的级别。

    db.col.remove({‘title’:‘MongoDB 教程’})
    //如果只想删除找到的第一条记录可以设置justOne为1
    db.collection_name.remove(deletion_criteria,1)
    //删除所有数据
    db.collection_name.remove({})

查询文档

基本语法 : db.collection_name.find().pretty()

操作 格式 范例 RDBMS中的类似语句
等于 {:} db.col.find({“by”:“菜鸟教程”}).pretty() where by = ‘菜鸟教程’
小于 {:{$lt:}} db.col.find({“likes”:{$lt:50}}).pretty() where likes < 50
小于或等于 {:{$lte:}} db.col.find({“likes”:{$lte:50}}).pretty() where likes <= 50
大于 {:{$gt:}} db.col.find({“likes”:{$gt:50}}).pretty() where likes > 50
大于或等于 {:{$gte:}} db.col.find({“likes”:{$gte:50}}).pretty() where likes >= 50
不等于 {:{$ne:}} db.col.find({“likes”:{$ne:50}}).pretty() where likes != 50

MongoDB AND 条件

db.col.find({key1:value1, key2:value2}).pretty()

MongoDB OR 条件

db.col.find(
   {
      $or: [
	     {key1: value1}, {key2:value2}
      ]
   }
).pretty()

AND 和 OR 联合使用

db.col.find({"likes": {$gt:50}, $or: [{"by": "w3cschool"},{"title": "MongoDB 教程"}]}).pretty()

$type条件操作符

$type操作符可以过滤某一个字段为某一个类型的数据,如String或者double

db.col.find({
   "title" : {
   $type : 2}})

Limit和Skip方法

MongoDB Limit() 方法

语法:db.COLLECTION_NAME.find().limit(NUMBER)

如果你需要在MongoDB中读取指定数量的数据记录,可以使用MongoDB的Limit方法,limit()方法接受一个数字参数,该参数指定从MongoDB中读取的记录条数。

db.mycol.find({},{"title":1,_id:0}).limit(2)

Skip() 方法

使用skip()方法来跳过指定数量的数据,skip方法同样接受一个数字参数作为跳过的记录条数。

语法:db.COLLECTION_NAME.find().limit(NUMBER).skip(NUMBER)

<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值