文章目录

  • 1. MongoDB的安装与启动
  • 2. 文档的操作
    • 2.1 数据库的创建与删除
    • 2.2 集合创建与删除
    • 2.3 文档的增删改查
      • 2.3.1 文档的插入(增)
      • 2.3.2 文档的查询
      • 2.3.3 文档的更新
      • 2.3.4 删除文档
    • 2.4 文档的分页查询
      • 2.4.1 统计查询
      • 2.4.2 分页列表查询
    • 2.5 排序查询
    • 2.6 文档的更多查询
      • 2.6.1 正则的复杂条件查询
      • 2.6.2 比较查询
      • 2.6.3 包含查询
      • 2.6.4 条件连接查询
  • 3. 索引的操作
    • 3.1 概述
    • 3.2 索引的类型
      • 3.2.1 单字段索引
      • 3.2.2 复合索引
    • 3.3 索引的查看
    • 3.4 创建和移除索引
  • 4. 项目实战
    • 4.1 需求分析
    • 4.2 文章微服务模块搭建
    • 4.3 文章评论实体类的编写
    • 4.4 文章评论的基本增删改查
    • 4.5 根据上级ID查询文章评论的分页列表
    • 4.6 MongoTemplate实现评论点赞

1. MongoDB的安装与启动

① 下载地址:https://fastdl.mongodb.org/win32/mongodb-win32-x86_64-2012plus-4.2.15.zip

② 解压后在cmd窗口启动mongodb服务:(data和db文件夹需要自己创建,和bin同级)

D:\install\mongodb-4.0.12\bin>mongod --dbpath=..\data\db

③ 配置环境变量后:

C:\Users\User>mongod --dbpath=D:\install\mongodb-4.0.12\data\db

④ mongodb服务不要关闭,重开cmd窗口连接该服务:

mongo

⑤ 查看已经有的数据库

show dbs

⑥ 退出mongodb

exit

2. 文档的操作

存放文章评论的数据存放到MongoDB中,数据结构参考如下:
数据库:articledb

专栏文章评论 comment
字段名称 字段含义 字段类型 备注
_id ID ObjectId或String Mongo的主键的字段
articleid 文章ID String
content 评论内容 String
userid 评论人ID String
nickname 评论人昵称 String
createdatetime 评论的日期时间 Date
likenum 点赞数 Int32
replynum 回复数 Int32
state 状态 String 0:不可见;1:可见;
parentid 上级ID String 如果为0表示文章的顶级评论

2.1 数据库的创建与删除

① 选择和创建数据库的语法格式,如果数据库不存在则自动创建:

use 数据库
use articledb

在 MongoDB 中,集合只有在内容插入后才会创建! 就是说,创建集合(数据表)后要再插入一个文档(记录),集合才会真正创建。

show dbs

mongoDB的存储方式分为磁盘和内存,刚开始创建的数据库是存放在内存中的,只有数据库中有集合数据时才会存放在磁盘中,因此只能查询到3个数据库。

② 查看当前使用的数据库:

db

③ 删除数据库,主要用来删除已经持久化的数据库:

db.dropDatabase()

2.2 集合创建与删除

① 集合,类似关系型数据库中的表。可以显示的创建,也可以隐式的创建,显式创建的基本语法格式,其中,name: 要创建的集合名称

db.createCollection(name)
db.createCollection("newCollection")

② 查看当前库中的表:show tables命令

show collections 或 show tables

③ 隐式创建,常用方式,当向一个集合中插入一个文档的时候,如果集合不存在,则会自动创建集合。

④ 集合的删除:

db.集合.drop()
db.newCollection.drop()

2.3 文档的增删改查

2.3.1 文档的插入(增)

文档(document)的数据结构和 JSON 基本一样,所有存储在集合中的数据都是 BSON 格式。

① 单个文档插入:使用insert()或者save()方法向集合中插入文档,要向comment的集合(表)中插入一条测试数据:

db.collection.insert({<document or array of documents>})
db.comment.insert({"articleid":"100000","content":"今天天气真好,阳光明媚","userid":"1001","nickname":"Rose","createdatetime":new Date(),"likenum":NumberInt(10),"state":null
})

提示:

(1)comment集合如果不存在,则会隐式创建
(2)mongo中的数字,默认情况下是double类型,如果要存整型,必须使用函数NumberInt(整型数字),否则取出来就有问题了。
(3)插入当前日期使用 new Date()
(4)插入的数据没有指定 _id ,会自动生成主键值
(5)如果某字段没值,可以赋值为null,或不写该字段。

注意:
(1)文档中的键/值对是有序的。
(2) 文档中的值不仅可以是在双引号里面的字符串,还可以是其他几种数据类型(甚至可以是整个嵌入的文档)。
(3) MongoDB区分类型和大小写。
(4) MongoDB的文档不能有重复的键。
(5)文档的键是字符串。除了少数例外情况,键可以使用任意UTF-8字符。

② 批量插入:批量插入多条文章评论

db.collection.insertMany([<document 1>,<document 2>,<document 3>])
db.comment.insertMany([
{"_id":"1","articleid":"100001","content":"我们不应该把清晨浪费在手机上,健康很重要,一杯温水幸福你我他。","userid":"1002","nickname":"相忘于江湖","createdatetime":new Date("2019-08-05T22:08:15.522Z"),"likenum":NumberInt(1000),"state":"1"},{"_id":"2","articleid":"100001","content":"我夏天空腹喝凉开水,冬天喝温开水","userid":"1005","nickname":"伊人憔悴","createdatetime":new Date("2019-08-05T23:58:51.485Z"),"likenum":NumberInt(888),"state":"1"},
{"_id":"3","articleid":"100001","content":"我一直喝凉开水,冬天夏天都喝。","userid":"1004","nickname":"杰克船长","createdatetime":new Date("2019-08-06T01:05:06.321Z"),"likenum":NumberInt(666),"state":"1"},
{"_id":"4","articleid":"100001","content":"专家说不能空腹吃饭,影响健康。","userid":"1003","nickname":"凯撒","createdatetime":new Date("2019-08-06T08:18:35.288Z"),"likenum":NumberInt(2000),"state":"1"},
{"_id":"5","articleid":"100001","content":"研究表明,刚烧开的水千万不能喝,因为烫嘴。","userid":"1003","nickname":"凯撒","createdatetime":new Date("2019-08-06T11:01:02.521Z"),"likenum":NumberInt(3000),"state":"1"}
])
2.3.2 文档的查询

① 查询所有:如果我们要查询集合的所有文档,我们输入以下命令

db.comment.find() 或者 db.comment.find({})

每条文档会有一个叫_id的字段,相当于关系数据库中表的主键,当你在插入文档记录时没有指定该字段,MongoDB会自动创建,其类型是ObjectID类型。
如果我们在插入文档记录时指定该字段也可以,其类型可以是ObjectID类型,也可以是MongoDB支持的任意类型。

② 条件查询:比如我想查询userid为1003的记录,只 要在find()中添加参数即可,参数也是json格式,如下:

db.comment.find({"userid":"1003"}) 或 db.comment.find({userid:"1003"})

如果只返回符合条件的第一条数据,可以使用findOne命令来实现,语法和find一样。如:查询用户编号是1003的记录,但只最多返回符合条件的第一条记录:

db.comment.findOne({"userid":"1003"})

③ 投影查询:如果要查询结果返回部分字段,则需要使用投影查询(不显示所有字段,只显示指定的字段),如:查询结果只显示 _id、userid、nickname :

> db.comment.find({"userid":"1003"},{userid:1,nickname:1})
{ "_id" : "4", "userid" : "1003", "nickname" : "凯 撒" }
{ "_id" : "5", "userid" : "1003", "nickname" : "凯撒" }

默认 _id 会显示。如:查询结果只显示 、userid、nickname ,不显示 _id :

> db.comment.find({"userid":"1003"},{userid:1,nickname:1,_id:0})
{ "userid" : "1003", "nickname" : "凯 撒" }
{ "userid" : "1003", "nickname" : "凯撒" }
2.3.3 文档的更新

文档更新语法:

db.collection.update(query, update, options)
//或
db.collection.update(<query>,<update>,{upsert: <boolean>,multi: <boolean>,writeConcern: <document>,collation: <document>,arrayFilters: [ <filterdocument1>, ... ],hint: <document|string> // Available starting in MongoDB 4.2}
)
Parameter Type Description
query document 更新的选择条件。可以使用与find()方法中相同的查询选择器,类似sql update查询内where后面的。。在3.0版中进行了更改:当使用upsert:true执行update()时,如果查询使用点表示法在_id字段上指定条件,则MongoDB将拒绝插入新文档。
update document or pipeline 要应用的修改。该值可以是:包含更新运算符表达式的文档,或仅包含:对的替换文档,或在MongoDB 4.2中启动聚合管道。管道可以由以下阶段组成: 癲 其 别 名 set 癲 其 别 名 unset 癲 其 别 名 replaceWith。换句话说:它是update的对象和一些更新的操作符(如 inc…)等,也可以理解为
upsert boolean 可选。如果设置为true,则在没有与查询条件匹配的文档时创建新文档。默认值为false,如果找不到匹配项,则不会插入新文档。
multi boolean 可选。如果设置为true,则更新符合查询条件的多个文档。如果设置为false,则更新一个文档。默认值为false。

① 覆盖修改:如果我们想修改_id为1的记录,点赞量为1001,输入以下语句

db.comment.update({"_id":"1"},{"likenum":NumberInt(1001)})

执行后,我们会发现,这条文档除了likenum字段其它字段都不见了

{ "_id" : "1", "likenum" : 1001 }

② 局部修改:为了解决这个问题,我们需要使用修改器$set来实现,命令如下,我们想修改_id为2的记录,浏览量为889,输入以下语句:

db.comment.update({"_id":"2"},{$set:{"likenum":NumberInt(889)}})

③ 批量修改:更新所有用户userid为 1003 的用户的昵称为 凯撒大帝

//默认只修改第一条数据
db.comment.update({"userid":"1003"},{$set:{"nickname":"张三"}})
//默认修改所有符合条件的数据
db.comment.update({"userid":"1003"},{$set:{"nickname":"张三"}},{multi:true})

④ 列值增长的修改:如果我们想实现对某列值在原有值的基础上进行增加或减少,可以使用 $inc 运算符来实现。需求:对3号数据的点赞数,每次递增1

db.comment.update({"_id":"3"},{$inc:{"likenum":NumberInt(1)}})
2.3.4 删除文档

① 以下语句可以将数据全部删除,请慎用:

db.comment.remove({})

② 如果删除_id=1的记录,输入以下语句:

db.comment.remove({_id:"1"})

2.4 文档的分页查询

2.4.1 统计查询

① 统计所有记录数:统计comment集合的所有的记录数

db.comment.count()

② 按条件统计记录数:统计userid为1003的记录条数

db.comment.count({userid:"1003"})
2.4.2 分页列表查询

可以使用limit()方法来读取指定数量的数据,使用skip()方法来跳过指定数量的数据。

① 如果你想返回指定条数的记录,可以在find方法后调用limit来返回结果(TopN),默认值20,例如 :返回前两条数据

db.comment.find().limit(2)

② skip方法同样接受一个数字参数作为跳过的记录条数。(前N个不要),默认值是0 ,如:跳过前2条数据

db.comment.find().skip(2)

③ 分页查询:需求:每页2个,第二页开始:跳过前两条数据,接着值显示3和4条数据

//第一页
db.comment.find().skip(0).limit(2)
//第二页,跳过前两条数据
db.comment.find().skip(2).limit(2)
//第三页,跳过前4条数据
db.comment.find().skip(4).limit(2)

2.5 排序查询

sort() 方法对数据进行排序,sort() 方法可以通过参数指定排序的字段,并使用 1 和 -1 来指定排序的方式,其中 1 为升序排列,而 -1 是用于降序排列。

① 对userid降序排列:

db.comment.find().sort({userid:-1})

② 对userid降序排列,并对访问量进行升序排列

db.comment.find().sort({userid:-1,linknum:1})

skip(), limilt(), sort()三个放在一起执行的时候,执行的顺序是先 sort(), 然后是 skip(),最后是显示的 limit(),和命令编写顺序无关

2.6 文档的更多查询

2.6.1 正则的复杂条件查询

MongoDB的模糊查询是通过正则表达式的方式实现的。格式为:

db.集合.find({字段:/正则表达式/})

例如,我要查询评论内容包含“开水”的所有文档,代码如下:

db.comment.find({content:/开水/})
2.6.2 比较查询

<, <=, >, >= 这个操作符也是很常用的,格式如下:

db.集合名称.find({ "field" : { $gt: value }}) // 大于: field > value
db.集合名称.find({ "field" : { $lt: value }}) // 小于: field < value
db.集合名称.find({ "field" : { $gte: value }}) // 大于等于: field >= value
db.集合名称.find({ "field" : { $lte: value }}) // 小于等于: field <= value
db.集合名称.find({ "field" : { $ne: value }}) // 不等于: field != value

如:查询评论点赞数量大于700的记录

db.comment.find({"likenum":{$gt:NumberInt(700)}})
2.6.3 包含查询

包含使用$in操作符。 示例:查询评论的集合中userid字段包含1003或1004的文档

db.comment.find({userid:{$in:["1003","1004"]}})

不包含使用$nin操作符。 示例:查询评论集合中userid字段不包含1003和1004的文档

db.comment.find({userid:{$nin:["1003","1004"]}})
2.6.4 条件连接查询

我们如果需要查询同时满足两个以上条件,需要使用$and操作符将条件进行关联。(相 当于SQL的and) 格式为:

$and:[ { },{ },{ } ]

示例:查询评论集合中likenum大于等于700 并且小于2000的文档:

db.comment.find({$and:[{likenum:{$gte:NumberInt(700)}},{likenum:{$lt:NumberInt(2000)}}]})

如果两个以上条件之间是或者的关系,我们使用 操作符进行关联,与前面 and的使用方式相同 格式为:

$or:[ { },{ },{ } ]

查询评论集合中userid为1003,或者点赞数小于1000的文档记录 :

db.comment.find({$or:[ {userid:"1003"} ,{likenum:{$lt:1000} }]})

3. 索引的操作

3.1 概述

索引支持在MongoDB中高效地执行查询。如果没有索引,MongoDB必须执行全集合扫描,即扫描集合中的每个文档,以选择与查询语句匹配的文档。这种扫描全集合的查询效率是非常低的,特别在处理大量的数据时,查询可以要花费几十秒甚至几分钟,这对网站的性能是非常致命的。

如果查询存在适当的索引,MongoDB可以使用该索引限制必须检查的文档数。

索引是特殊的数据结构,它以易于遍历的形式存储集合数据集的一小部分。索引存储特定字段或一组字段的值,按字段值排序。索引项的排序支持有效的相等匹配和基于范围的查询操作。此外,MongoDB还可以使用索引中的排序返回排序结果。

官网文档:https://docs.mongodb.com/manual/indexes/

了解:MongoDB索引使用B树数据结构(确切的说是B-Tree,MySQL是B+Tree)

3.2 索引的类型

3.2.1 单字段索引

MongoDB支持在文档的单个字段上创建用户定义的升序/降序索引,称为单字段索引(Single Field Index)。

对于单个字段索引和排序操作,索引键的排序顺序(即升序或降序)并不重要,因为MongoDB可以在任何方向上遍历索引。

3.2.2 复合索引

MongoDB还支持多个字段的用户定义索引,即复合索引(Compound Index)。

复合索引中列出的字段顺序具有重要意义。例如,如果复合索引由 { userid: 1, score: -1 } 组成,则索引首先按userid正序排序,然后在每个userid的值内,再在按score倒序排序。

3.3 索引的查看

> db.comment.getIndexes()
[{"v" : 2,"key" : {"_id" : 1},"name" : "_id_","ns" : "articledb.comment"}
]

3.4 创建和移除索引

① 单字段索引示例:对 userid 字段建立索引

> db.comment.createIndex({userid:1})
{"createdCollectionAutomatically" : false,"numIndexesBefore" : 1,"numIndexesAfter" : 2,"ok" : 1
}

② 复合索引:对 userid 和 nickname 同时建立复合(Compound)索引

> db.comment.createIndex({userid:1,nickname:-1})
{"createdCollectionAutomatically" : false,"numIndexesBefore" : 2,"numIndexesAfter" : 3,"ok" : 1
}

③ 移除索引:删除 comment 集合中 userid 字段上的升序索引

db.comment.dropIndex({userid:1})

4. 项目实战

4.1 需求分析

文章示例参考:早晨空腹喝水,是对还是错?https://www.toutiao.com/a6721476546088927748/

① 需要实现以下功能:
(1)基本增删改查API
(2)根据文章id查询评论
(3)评论点赞

② 表结构分析:

专栏文章评论 comment
字段名称 字段含义 字段类型 备注
_id ID ObjectId或String Mongo的主键的字段
articleid 文章ID String
content 评论内容 String
userid 评论人ID String
nickname 评论人昵称 String
createdatetime 评论的日期时间 Date
likenum 点赞数 Int32
replynum 回复数 Int32
state 状态 String 0:不可见;1:可见;
parentid 上级ID String 如果为0表示文章的顶级评论

③ 技术选型Spring Data MongoDB :https://projects.spring.io/spring-data-mongodb/

4.2 文章微服务模块搭建

pom.xml:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.1.6.RELEASE</version><relativePath/> <!-- lookup parent from repository --></parent><groupId>com.hengheng</groupId><artifactId>article</artifactId><version>1.0-SNAPSHOT</version><properties><maven.compiler.source>11</maven.compiler.source><maven.compiler.target>11</maven.compiler.target></properties><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-mongodb</artifactId></dependency></dependencies>
</project>

application.properties:

spring.data.mongodb.host=127.0.0.1
spring.data.mongodb.database=articledb
spring.data.mongodb.port=27017
package com.hengheng.article;import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplication
public class ArticleApplication {public static void main(String[] args) {SpringApplication.run(ArticleApplication.class,args);}
}

4.3 文章评论实体类的编写

package com.hengheng.article.po;import lombok.Data;
import org.springframework.data.annotation.Id;
import org.springframework.data.mongodb.core.index.Indexed;
import org.springframework.data.mongodb.core.mapping.Document;
import org.springframework.data.mongodb.core.mapping.Field;import java.io.Serializable;
import java.time.LocalDateTime;
import java.util.Date;/*** 文章评论实体类*/
//把一个java类声明为mongodb的文档,可以通过collection参数指定这个类对应的文档。
//@Document(collection="mongodb 对应 collection 名")
// 若未加 @Document ,该 bean save 到 mongo 的 comment collection
// 若添加 @Document ,则 save 到 comment collection
@Document(collection="comment")//可以省略,如果省略,则默认使用类名小写映射集合
//复合索引
// @CompoundIndex( def = "{'userid': 1, 'nickname': -1}")
@Data
public class Comment implements Serializable {//主键标识,该属性的值会自动对应mongodb的主键字段"_id",如果该属性名就叫“id”,则该注解可以省略,否则必须写@Idprivate String id;//主键//该属性对应mongodb的字段的名字,如果一致,则无需该注解//吐槽内容@Field("content")private String content;//发布日期private Date publishtime;//添加了一个单字段的索引//发布人ID@Indexedprivate String userid;//昵称private String nickname;//评论的日期时间private LocalDateTime createdatetime;//点赞数private Integer likenum;//回复数private Integer replynum;//状态private String state;//上级IDprivate String parentid;private String articleid;
}

4.4 文章评论的基本增删改查

package com.hengheng.article.dao;import com.hengheng.article.po.Comment;
import org.springframework.data.mongodb.repository.MongoRepository;public interface CommentRepository extends MongoRepository<Comment, String> {}
package com.hengheng.article.service;import com.hengheng.article.dao.CommentRepository;
import com.hengheng.article.po.Comment;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;import java.util.List;@Service
public class CommonService {@Autowiredprivate CommentRepository commentRepository;/*** 保存一个评论* @param comment*/public void saveComment(Comment comment){commentRepository.save(comment);}/*** 更新一个评论* @param comment*/public void upadateComment(Comment comment){commentRepository.save(comment);}/*** 根据id删除评论* @param id*/public void deleteCommentById(String id){commentRepository.deleteById(id);}/*** 查询所有评论* @return*/public List<Comment> findCommentList(){return commentRepository.findAll();}/*** 根据id查询评论* @param id* @return*/public Comment findCommentById(String id){return commentRepository.findById(id).get();}
}
package com.hengheng.article.test;import com.hengheng.article.po.Comment;
import com.hengheng.article.service.CommonService;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;import java.util.List;@SpringBootTest
@RunWith(SpringRunner.class)
public class ServiceTest {@Autowiredprivate CommonService commonService;@Testpublic void testFindCommentById(){Comment comment = commonService.findCommentById("1");System.out.println(comment);}@Testpublic void testFindCommentList(){List<Comment> commentList = commonService.findCommentList();for(Comment comment:commentList){System.out.println(comment);}}
}

4.5 根据上级ID查询文章评论的分页列表

public interface CommentRepository extends MongoRepository<Comment, String> {public List<Comment> findCommentsByParentid(String parentid, Pageable pageable);
}
@Service
public class CommonService {@Autowiredprivate CommentRepository commentRepository;/*** 根据父级ID查询* @param parentid* @param page* @param size* @return*/public List<Comment> findCommentListPageByParentId(String parentid,int page,int size){return commentRepository.findCommentsByParentid(parentid, PageRequest.of(page-1,size));}
}

4.6 MongoTemplate实现评论点赞

package com.hengheng.article.service;import com.hengheng.article.dao.CommentRepository;
import com.hengheng.article.po.Comment;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query;
import org.springframework.data.mongodb.core.query.Update;
import org.springframework.stereotype.Service;import java.util.List;@Service
public class CommonService {@Autowiredprivate CommentRepository commentRepository;@Autowiredprivate MongoTemplate mongoTemplate;/*** 根据父级ID查询* @param parentid* @param page* @param size* @return*/public List<Comment> findCommentListPageByParentId(String parentid,int page,int size){return commentRepository.findCommentsByParentid(parentid, PageRequest.of(page-1,size));}public void updateCommentLikeNum(String id){//查询条件Query query = Query.query(Criteria.where("_id").is(id));//更新条件Update update = new Update();update.inc("likenum");mongoTemplate.updateFirst(query,update,Comment.class);}
}

Mongodb基础命令总结相关推荐

  1. Mongodb基础命令与用法

    Mongodb基础命令与用法 查看版本号 [root@VM_0_12_centos bin]# ./mongo -version MongoDB shell version v3.6.5 git ve ...

  2. MongoDB基础命令

    MongoDB 入门命令 查看当前数据库 > show dbs admin 0.000GB config 0.000GB local 0.000GB >-- use databaseNam ...

  3. MongoDB数据库(了解MongoDB及基础命令,备份数据库)

    文章目录 MongoDB数据库(了解MongDB及基础命令,备份数据库) 什么是MongoDB ? 主要特点 配置mongdb数据库 多实例配置 数据库操作 备份数据库 MongoDB数据库(了解Mo ...

  4. mongodb shell基础命令

    mongodb shell命令 1.数据库基本操作 在mongodb中,使用use来创建和选择数据库,当数据库不存在时,use会创建一个新的数据库,但是这数据库并没有持久化到硬盘里面,而存在内存中,只 ...

  5. CentOS7上安装MongoDB及基础命令学习

    安装MongoDB 安装各个Linux平台依赖包 > ##Red Hat/CentOS > sudo yum install libcurl openssl > > ##Ubu ...

  6. MongoDB 基础用法及学习笔记

    MongoDB 基础用法 环境配置与安装 安装 查看MongoDB版本 启动MongoDB服务 检查服务状态 启动服务 打开配置文件,连接MongoDB 查看数据列表 退出 MongoDB 连接 Mo ...

  7. MongoDB 基础浅谈

    作者:hazenweng,腾讯 QQ 音乐后台开发工程师 MongoDB 作为一款优秀的基于分布式文件存储的 NoSQL 数据库,在业界有着广泛的应用.下文对 MongoDB 的一些基础概念进行简单介 ...

  8. Mongodb 笔记01 MongoDB 简介、MongoDB基础知识、启动和停止MongoDB

    MongoDB 简介 1. 易于使用:没有固定的模式,根据需要添加和删除字段更加容易 2. 易于扩展:MongoDB的设计采用横向扩展.面向文档的数据模型使它能很容易的再多台服务器之间进行分割.自动处 ...

  9. MongoDB基础使用

    5.MongoDB基础使用 5.1.常用的命令(重点) > Help 查看帮助 显示数据库列表 > show dbs 创建数据库 > use dbname 如果数据库不存在,则创建数 ...

最新文章

  1. 堆排序 海量数据求前N大的值
  2. 容器资源需求、资源限制(二十二)
  3. Java多线程:线程停止
  4. Go学习笔记一:基础知识
  5. Hlg 1030 排序
  6. zuul网关_SpringCould之服务网关(zuul)介绍与配置
  7. proxysql on github
  8. mysql数据词典生成markdown_老板让我把数据库字典导出到Markdown格式的文件
  9. oracle地理数据库,Oracle 中的多个地理数据库 (geodatabase)
  10. vivado2017.4开发vc707(virtex7)(一)上电调试
  11. JDK7下载|JDK1.7下载可选择window版和linux版
  12. 猜单词游戏。计算机随机产生一个单词,打乱字母顺序,供玩家去猜 a.准备一组单词,随机抽取一个b.将抽取的单词作为答案,打乱字母顺序,显示给玩家,供其猜测c.猜测错误继续猜测或以空字符串.
  13. mysql插入数据的时候出错_毕设问题小记——Mysql插入数据时出错
  14. Game boy模拟器(3):GPU的时序
  15. 工业互联网平台核心技术之一:数据集成与边缘处理技术
  16. QT随机放1个1和七个2_才知道,1个橙子放2个鸡蛋,只要拌一拌,出锅孩子吃了提高免疫力|橙子|鸡蛋|蒸蛋|食盐|白糖...
  17. Nginx 优化及原理
  18. Linux下C语言实现多线程排序文件内容
  19. linux下安装mysql(利用Cloudera Manager安装集群中的CDH环境的第七步)(CM安装CDH第七步)
  20. linux 中copy软链接

热门文章

  1. syscall指令_linux syscall 详解【转】
  2. bwz是什么缩写_bwz是什么意思,bwz缩写代表什么意思,bwz是什么含义
  3. ansible完全攻略
  4. 基于STM32F103的RTC功能实现
  5. 尔雅大学计算机基础知识点,尔雅大学计算机基础答案
  6. 【深度学习】DenseNet
  7. 4.基于MTK的7601 WIFI网卡在X210上的移植和使用
  8. 给研华, 控创, 西门子, 凌华, 研祥, 艾迅, 盛博, 诺达佳, 阿普奇 ,桦汉工控机外扩一路,二路CAN,四路等CAN通讯
  9. android应用搬家的实现
  10. android emulator 命令的一些问题