MongoDB学习笔记

显示驱动调试工具全解析:从内核日志到示波器的分层排查实战 在嵌入式与移动显示开发中,显示驱动调试常面临黑屏、花屏等无反馈故障,其核心在于快速定位问题层级。显示链路通常分为应用合成、显示控制器、物理接口与面板四层,调试工具需对应分层选用。内核日志与帧缓冲导出可低成本验证数据通路,I2C/SPI/DPAUX总线分析用于协议级排查,而示波器与逻辑分析仪则解决信号完整性与时序问题。合理组合通用工具与厂商套件,能显著提升MIPI DSI、DisplayPort等接口的调试效率,适用于手机、车载与桌面显示驱动的开发与故障定位场景。 阅读详情

一、MongoDB的简介

      MongoDB是一个基于分布式文件存储的数据库。由C++语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。

    MongoDB是一个高性能,开源,无模式的文档型数据库,它在许多场景下可用于替代传统的关系型数据库或键/值存储方式,是当前NoSql数据库中比较热门的一种。

      NoSql小简介:

    NoSql,全称是 Not Only Sql,指的是非关系型的数据库。下一代数据库主要解决几个要点:非关系型的、分布式的、开源的、水平可扩展的。原始的目的是为了大规模web应用,这场运动开始于2009年初,通常特性应用如:模式自由、支持简易复制、简单的API、最终的一致性(非ACID)、大容量数据等。NoSQL被我们用得最多的当数key-value存储,当然还有其他的文档型的、列存储、图型数据库、xml数据库等。

      MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。他支持的数据结构非常松散,是类似json的bjson格式,因此可以存储比较复杂的数据类型。Mongo最大的特点是他支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。

      传统的关系数据库一般由数据库(database)、表(table)、记录(record)三个层次概念组成,MongoDB是由数据库(database)、集合(collection)、文档对象(document)三个层次组成。MongoDB对于关系型数据库里的表,但是集合中没有列、行和关系概念,这体现了模式自由的特点。

特点:

高性能、易部署、易使用,存储数据非常方便。主要功能特性有:

  • 面向集合存储,易存储对象类型的数据。
  • 模式自由。
  • 支持动态查询。
  • 支持完全索引,包含内部对象。
  • 支持查询。
  • 支持复制和故障恢复。
  • 使用高效的二进制数据存储,包括大型对象(如视频等)。
  • 自动处理碎片,以支持云计算层次的扩展性
  • 支持Python,PHP,Ruby,Java,C,C#,Javascript,Perl及C++语言的驱动程序,社区中也提供了对Erlang及.NET等平台的驱动程序。
  • 文件存储格式为BSON(一种JSON的扩展)。
  • 可通过网络访问。

  功能:

  • 面向集合的存储:适合存储对象及JSON形式的数据。
  • 动态查询:Mongo支持丰富的查询表达式。查询指令使用JSON形式的标记,可轻易查询文档中内嵌的对象及数组。
  • 完整的索引支持:包括文档内嵌对象及数组。Mongo的查询优化器会分析查询表达式,并生成一个高效的查询计划。
  • 查询监视:Mongo包含一个监视工具用于分析数据库操作的性能。
  • 复制及自动故障转移:Mongo数据库支持服务器之间的数据复制,支持主-从模式及服务器之间的相互复制。复制的主要目标是提供冗余及自动故障转移。
  • 高效的传统存储方式:支持二进制数据及大型对象(如照片或图片)
  • 自动分片以支持云级别的伸缩性:自动分片功能支持水平的数据库集群,可动态添加额外的机器。

  适用场合:

  • 网站数据:Mongo非常适合实时的插入,更新与查询,并具备网站实时数据存储所需的复制及高度伸缩性。
  • 缓存:由于性能很高,Mongo也适合作为信息基础设施的缓存层。在系统重启之后,由Mongo搭建的持久化缓存层可以避免下层的数据源 过载。
  • 大尺寸,低价值的数据:使用传统的关系型数据库存储一些数据时可能会比较昂贵,在此之前,很多时候程序员往往会选择传统的文件进行存储。
  • 高伸缩性的场景:Mongo非常适合由数十或数百台服务器组成的数据库。Mongo的路线图中已经包含对MapReduce引擎的内置支持。
  • 用于对象及JSON数据的存储:Mongo的BSON数据格式非常适合文档化格式的存储及查询。

二、下载和安装

    MongoDB 当前版本是2.6.5,下载地址:http://www.mongodb.org/downloads。提供了各种平台的版本。我这里选择的是Windows平台下的2.0.4版本。

  1. 第一步:下载安装包:如果是win系统,注意是64位还是32位版本的,请选择正确的版本。
  2. 第二步:新建目录“D:\MongoDB”,解压下载到的安装包,找到bin目录下面全部.exe文件,拷贝到刚创建的目录下。(这里的目录可以随意选择,但路径中最好避免出现中文)
  3. 第三步:在“D:\MongoDB”目录下新建“data”文件夹,它将会作为数据存放的根文件夹。

 配置成功后会看到如下画面:


  在浏览器输入:http://localhost:27017/,可以看到如下提示:
You are trying to access MongoDB on the native driver port. For http diagnostic access, add 1000 to the port number.(这句话的意思是:你如果想了解更多的MongoDB的信息,可以把端口加1000,也就是http://localhost:28017/)

  如此,MongoDB数据库服务已经成功启动了。

三、使用mongo.exe执行数据库的增删查改操作

mongodb 为我们提供的客户端管理工具是mongo.exe
1. 创建数据库:

 双击打开mongo.exe 出现如下界面:


该界面的意思是,当前连接的数据库是test,这是系统默认将要创建的。为什么说是“将要创建的”呢?因为此时并不存在此数据库,或者说它现在还只在内存中,并没有创建在物理磁盘上。不信,你看MongoDBFiles文件夹下面除了mongod.lock外,什么都没有。只有当你执行了插入数据的命令后,该数据库才会真正的创建。

我们暂时不管这个test了。现在我们来创建一个叫cnblogs 的数据库。

在shell 命令窗口键入如下命令:

> use cnblogs // use 命令用来切换当前数据库,如果该数据库不存在,则会先新建一个。
这时会出现switched to db cnblogs

2.创建collection并插入数据

 在传统关系型数据库中,创建完了库后接下来会创建表,但是在mongoDB中没有“表”的概念,与其对应的一个概念是集合,即collection。

 在shell 命令窗口键入如下命令:

> db.users.insert({'name':'xumingxiang','sex':'man'})

// 这条命令是向users 集合中插入一条数据。如果集合users不存在,则会先新建一个,然后再插入数据,参数以JSON格式传入。

 因为我们后面要测试删除数据,所以我们再插入一条数据:

 > db.users.insert({'name':xiangshu','sex':'man'})

3.在上面1和2中,我们创建了数据库,创建了集合,还插入了两条数据,那么这些操作有没有执行成功呢?我们来查询一下:

在shell 命令窗口键入如下命令:

> show dbs // 显示所有数据库



>show collections // 显示当前数据库下的所有集合



>db.users.find() // 显示users集合下的所有数据文档

 shell 界面如下:


 看我用红色标记的部分。这说明我们之前的操作是成功的。我们还看到系统给每条记录分配了一个惟一主键 _id 。

4.更新数据

 现在我们要把第二条数据的sex改成女即“women”

 在shell 命令窗口键入如下命令:

> db.users.update({'name':'xiangshu'},{'$set':{'sex':'women'}},upsert=true,multi=false)

 解释一下几个参数:

 第一:查询的条件

 第二:更新的字段

 第三:如果不存在则插入

 第四:是否允许修改多条记录

5.删除记录

 我们现在要把第一条记录即'name'为'xumingxiang'的

 在shell 命令窗口键入如下命令:

 > db. users.remove({'name':'xumingxiang'})

 我们在检验一下4和5两步有没有操作成功,在shell 命令窗口键入如下命令:

 > db.users.find() 

从输出的界面我们看到现在只剩下一条'name'为'xiangshu'的了,并且它的'sex'为'women',这说明4)5)两步操作成功了。

 6.删除所有记录

 > db.users.remove()

 7.删除collection

> db.users.drop() //如果删除成功会返回“true”,否则返回“false”

 8.删除当前数据库

 > db.dropDatabase()

 四、更多的操作命名


db.AddUser(username,password)  添加用户

db.auth(usrename,password)     设置数据库连接验证

db.cloneDataBase(fromhost)     从目标服务器克隆一个数据库
db.commandHelp(name)           returns the help for the command
db.copyDatabase(fromdb,todb,fromhost)  复制数据库fromdb---源数据库名称,todb---目标数据库名称,fromhost---源数据库服务器地址
db.createCollection(name,{size:3333,capped:333,max:88888})  创建一个数据集,相当于一个表
db.currentOp()                 取消当前库的当前操作
db.dropDataBase()              删除当前数据库
db.eval(func,args)             run code server-side
db.getCollection(cname)        取得一个数据集合,同用法:db['cname'] or
db.getCollenctionNames()       取得所有数据集合的名称列表
db.getLastError()              返回最后一个错误的提示消息
db.getLastErrorObj()           返回最后一个错误的对象
db.getMongo()                  取得当前服务器的连接对象get the server
db.getMondo().setSlaveOk()     allow this connection to read from then nonmaster membr of a replica pair
db.getName()                   返回当操作数据库的名称
db.getPrevError()              返回上一个错误对象
db.getProfilingLevel()         
db.getReplicationInfo()        获得重复的数据
db.getSisterDB(name)           get the db at the same server as this onew
db.killOp()                    停止(杀死)在当前库的当前操作
db.printCollectionStats()      返回当前库的数据集状态
db.printReplicationInfo()
db.printSlaveReplicationInfo()
db.printShardingStatus()       返回当前数据库是否为共享数据库
db.removeUser(username)        删除用户
db.repairDatabase()            修复当前数据库
db.resetError()                
db.runCommand(cmdObj)          run a database command. if cmdObj is a string, turns it into {cmdObj:1}
db.setProfilingLevel(level)    0=off,1=slow,2=all
db.shutdownServer()            关闭当前服务程序
db.version()                   返回当前程序的版本信息

 

db.test.find({id:10})          返回test数据集ID=10的数据集
db.test.find({id:10}).count()  返回test数据集ID=10的数据总数
db.test.find({id:10}).limit(2) 返回test数据集ID=10的数据集从第二条开始的数据集
db.test.find({id:10}).skip(8)  返回test数据集ID=10的数据集从0到第八条的数据集
db.test.find({id:10}).limit(2).skip(8)  返回test数据集ID=1=的数据集从第二条到第八条的数据
db.test.find({id:10}).sort()   返回test数据集ID=10的排序数据集
db.test.findOne([query])       返回符合条件的一条数据
db.test.getDB()                返回此数据集所属的数据库名称
db.test.getIndexes()           返回些数据集的索引信息
db.test.group({key:...,initial:...,reduce:...[,cond:...]})
db.test.mapReduce(mayFunction,reduceFunction,<optional params>)
db.test.remove(query)                      在数据集中删除一条数据
db.test.renameCollection(newName)          重命名些数据集名称
db.test.save(obj)                          往数据集中插入一条数据
db.test.stats()                            返回此数据集的状态
db.test.storageSize()                      返回此数据集的存储大小
db.test.totalIndexSize()                   返回此数据集的索引文件大小
db.test.totalSize()                        返回些数据集的总大小
db.test.update(query,object[,upsert_bool]) 在此数据集中更新一条数据
db.test.validate()                         验证此数据集
db.test.getShardVersion()                  返回数据集共享版本号

五、MongoDB与现有的关系型数据库的MYSQL语法比较

MongoDB语法                                   MySql语法
db.test.find({'name':'foobar'}) <==> select * from test where name='foobar'
db.test.find()                  <==> select * from test
db.test.find({'ID':10}).count() <==> select count(*) from test where ID=10
db.test.find().skip(10).limit(20)     <==> select * from test limit 10,20
db.test.find({'ID':{$in:[25,35,45]}}) <==> select * from test where ID in (25,35,45)
db.test.find().sort({'ID':-1})        <==> select * from test order by ID desc
db.test.distinct('name',{'ID':{$lt:20}})  <==> select distinct(name) from test where ID<20
db.test.group({key:{'name':true},cond:{'name':'foo'},reduce:function(obj,prev){prev.msum+=obj.marks;},initial:{msum:0}})  <==> select name,sum(marks) from test group by name
db.test.find('this.ID<20',{name:1})  <==> select name from test where ID<20
db.test.insert({'name':'foobar','age':25})<==>insert into test ('name','age') values('foobar',25)
db.test.remove({})                <==> delete * from test
db.test.remove({'age':20})        <==> delete test where age=20
db.test.remove({'age':{$lt:20}})  <==> elete test where age<20
db.test.remove({'age':{$lte:20}}) <==> delete test where age<=20
db.test.remove({'age':{$gt:20}})  <==> delete test where age>20
db.test.remove({'age':{$gte:20}}) <==> delete test where age>=20
db.test.remove({'age':{$ne:20}})  <==> delete test where age!=20
db.test.update({'name':'foobar'},{$set:{'age':36}}) <==> update test set age=36 where name='foobar'
db.test.update({'name':'foobar'},{$inc:{'age':3}})  <==> update test set age=age+3 where name='foobar'

注意以上命令大小写敏感

六、可视化管理工具MongoVUE

使用mongo.exe 管理数据库虽然可行,功能也挺强大,但每次都要敲命令,即繁琐枯燥而且效率低下。下面介绍一款Windows下的可视化操作的管理工具MongoVUE

下载地址:http://www.mongovue.com/downloads/

运行效果如下:


七、在C#中使用官方驱动操作MongoDB

 1.下载安装

 想要在C#中使用MongoDB,首先得要有个MongoDB支持的C#版的驱动。C#版的驱动有很多种,如官方提供的,samus。 实现思路大都类似。这里我们先用官方提供的mongo-csharp-driver ,当前版本为1.4.1

下载地址:http://github.com/mongodb/mongo-csharp-driver/downloads

编译之后得到两个dll

 MongoDB.Driver.dll:顾名思义,驱动程序

 MongoDB.Bson.dll:序列化、Json相关

 然后在我们的程序中引用这两个dll。

 下面的部分简单演示了怎样使用C#对MongoDB进行增删改查操作。

 2.连接数据库:

 在连接数据库之前请先确认您的MongoDB已经开启了。

//数据库连接字符串

 const string strconn = "mongodb://127.0.0.1:27017";

//数据库名称

 const string dbName = "cnblogs";

//创建数据库链接

 MongoServer server = MongoDB.Driver.MongoServer.Create(strconn);

//获得数据库cnblogs

 MongoDatabase db = server.GetDatabase(dbName);

3.插入数据:

好了数据打开了,现在得添加数据了,我们要添加一条User“记录”到 Users集合中。

在MongoDB中没有表的概念,所以在插入数据之前不需要创建表。

但我们得定义好要插入的数据的模型Users

Users.cs:

public class Users

{

public ObjectId _id;//BsonType.ObjectId 这个对应了 MongoDB.Bson.ObjectId 

     public string Name { get; set; }

public string Sex { set; get; }

}

_id 属性必须要有,否则在更新数据时会报错:“Element '_id' does not match any field or property of class”。

 好,现在看看添加数据的代码怎么写:

public void Insert()

{

//创建数据库链接

 MongoServer server = MongoDB.Driver.MongoServer.Create(strconn);

//获得数据库cnblogs

 MongoDatabase db = server.GetDatabase(dbName);

Users users = new Users();

users.Name = "xumingxiang";

users.Sex = "man";

//获得Users集合,如果数据库中没有,先新建一个

 MongoCollection col = db.GetCollection("Users");

//执行插入操作

 col.Insert<Users>(users);

}

4.更新数据

public void Update()

{

//创建数据库链接

 MongoServer server = MongoDB.Driver.MongoServer.Create(strconn);

//获得数据库cnblogs

 MongoDatabase db = server.GetDatabase(dbName);

//获取Users集合

 MongoCollection col = db.GetCollection("Users");

//定义获取“Name”值为“xumingxiang”的查询条件

 var query = new QueryDocument { { "Name", "xumingxiang" } };

//定义更新文档

 var update = new UpdateDocument { { "$set", new QueryDocument { { "Sex", "wowen" } } } };

//执行更新操作

 col.Update(query, update);

}

5.删除数据

public void Delete()

{

//创建数据库链接

 MongoServer server = MongoDB.Driver.MongoServer.Create(strconn);

//获得数据库cnblogs

 MongoDatabase db = server.GetDatabase(dbName);

//获取Users集合

 MongoCollection col = db.GetCollection("Users");

//定义获取“Name”值为“xumingxiang”的查询条件

 var query = new QueryDocument { { "Name", "xumingxiang" } };

//执行删除操作

 col.Remove(query);

}

6.查询数据

//引用
//using MongoDB.Driver.Builders;
//using MongoDB.Bson;
public void Query()
{

    //创建数据库链接
    MongoServer server = MongoDB.Driver.MongoServer.Create(strconn);

    //获得数据库cnblogs
    MongoDatabase db = server.GetDatabase(dbName);
    //获取Users集合

    MongoCollection col = db.GetCollection("Users");

    //定义获取“Name”值为“xumingxiang”的查询条件
    var query = new QueryDocument { { "Name", "xumingxiang" } };
    //当然,我想你也许会喜欢这样写:  
    var query = Query.EQ("Name", "xumingxiang");    // 等于
        //类似的还有:
        query = Query.NE("Name", "xumingxiang");     //不等于
        query = Query.GT("Age", 25);                 //大于
        query = Query.GTE("Age", 25);                //大于等于
        query = Query.LT("Age", 25);                 //小于
        query = Query.LTE("Age", 25);                //小于等于

        //子查询
        query = Query.In("Age", new List<BsonInt32> { 25, 26, 27 });        //查询Age的值在25、26、27范围内的数据   
        query = Query.NotIn("Age", new List<BsonInt32> { 25, 26, 27 });     //查询Age的值不在25、26、27范围内的数据   

        //And 操作
        query = Query.And( Query.GT("Age",20),Query.LT("Sex","男") );

        //Or 操作
        query = Query.Or(Query.GT("Age", 20), Query.LT("Sex", "男"));


        query = Query.Exists("BirthDay");       //存在 名为 BirthDay 的字段的数据
        query = Query.NotExists("BirthDay");    //不存在 名为 BirthDay 的字段的数据

        query = Query.Mod("Age", 10, 1);        //查询age取模10等于1的数据
            

    var sort = SortBy.Ascending("Age");             //顺序排列
    sort = SortBy.Descending("Age");                //倒序排列

    //上面这写代码你可能更喜欢写成泛型的形式,那样会更符合您的编码哲学,该驱动也是支持的,如:
    var  tQuery = Query<Users>.In(x => x.Age, new List<BsonInt32> { 25, 26, 27 });   
    var  tSort = SortBy<Users>.Descending(x=>x.Age);


    //查询全部集合里的数据
    var result1 = col.FindAllAs<Users>().ToList();

    //查询第一条数据,查询条件可缺省。
    var result2 = col.FindOneAs<Users>();
    //查询指定查询条件的全部数据
    var result3 = col.FindAs<Users>(query)  //筛选条件
        .SetSortOrder(sort)             //排序
        .Distinct()                     //排重
        .Skip(20)                       //跳过前20个
        .Take(10)                       //取后面的10个 
        .ToList();



}

 

八、有一款驱动是samus,可以用于操作MongoDB,支持Linq和Lambda表达式,但是由于长久没更新,不太建议使用


MongoDB高手课学习笔记(一,再入门) 这是极客时间-MongoDB高手课的学习笔记,第一章:再入门. 按照数据库排名网站db-engines.com的统计,最近几年MongoDB一直保持在前四五名,前面几位是年龄30多岁的关系型数据库(Oracle,Mysql,SQLServer,PostgreSQL). 阅读详情

相关推荐

【MongoDB学习笔记】-使用 MongoDB 进行 CRUD 操作(上)

作者:幻好 来源:恒生LIGHT云社区 概述 MongoDB 是一种持久化的面向文档的数据库,用于以文档的形式存储和处理数据。 与其他的数据库管理系统一样,MongoDB 可以通过四种基本类型的数据操作来管理数据并与数据交互: C:创建操作,涉及将数据写入数据库 R:读取操作,查询数据库以从中检索数据 U:更新操作,更改数据库中已存在的数据 D:删除操作,从数据库中永久删除数据 以上四种操作统称为 CRUD 操作,本文主要讲解这四种操作的原理和命令等相关知识。 具体操作 连接 MongoDB Se.

weixin_44433834的博客 767

NoSQL数据库的主主备份

原文:Homegrown Master-Master Replication For A NoSQL Database 作者:Dennis Anikin 翻译:贺雨言 Tarantool DBMS的高性能应该很多人都听说过,包括其丰富的工具套件和某些特定功能。比如,它拥有一个非常强大的on-disk存储引擎Vinyl,并且知道怎样处理JSON文档。然而,大部分文章往往忽略了一个关...

博客 440

MongoDB学习笔记(一) Linux下MongoDB的安装和配置

一、MongoDB简介   MongoDB是一个高性能,开源,无模式的文档型数据库,是当前NoSql数据库中比较热门的一种。它在许多场景下可用于替代传统的关系型数据库或键/值存储方式。Mongo使用C++开发。Mongo的官方网站地址是:http://www.mongodb.org/,读者可以在此获得更详细的信息。   NoSql,全称是 Not Only Sql,指的是非关系型的

Go2Shell 1906

nosql数据库做数据备份_保护NoSQL数据库:发挥作用

nosql数据库做数据备份 在最近的头条新闻中,世界上一些最大的公司和政府机构盗窃了数百万张信用卡记录和敏感的员工数据的报道,组织加倍努力降低安全性也就不足为奇了。 安全终于开始引起高层管理者的注意。 Ponemon Institute的2015年安全报告发现,有55%的高级管理人员将安全性视为重大问题,而前一年仅为13%。 毫无疑问,2014年发生的大量违反行为是这一变化的原因。 Pon...

danpu0978的博客 297

深入解析TMC2209 UART寄存器配置:从基础指令到高级参数调优

本文深入解析TMC2209 UART寄存器配置,从基础指令到高级参数调优,涵盖电流控制、微步细分等关键设置。通过实战案例和优化技巧,帮助开发者高效配置步进电机驱动,提升系统性能和稳定性。特别介绍了UART通信协议和CRC校验实现,确保数据传输可靠性。

tequila的博客 1159

解决OpenCASCADE性能瓶颈:显示加速与三角剖分优化全攻略

本文深入探讨OpenCASCADE在工业设计和CAD建模中的性能优化策略,重点解决显示加速与三角剖分等核心瓶颈问题。通过智能刷新控制、显示数据结构优化和动态LOD技术,显著提升渲染效率和交互体验,适用于复杂场景下的三维可视化应用。

weixin_30752699的博客 344

Net Core 学习入门(六)----------配置mongoDB

1,在官网处下载最新安装包,安装到windows。2,使用vs新建一个项目,并使用nugut导入mongoDb的开发包。3,配置类     配置是按照官网的教程配的,操作类是网上其他大神的,using CoreMvc.Common; using MongoDB.Driver; using System; using System.Collections.Generic; using System....

weixin_41609327的博客 1445

MTGS与3D高斯泼溅:如何用多轨迹数据重建自动驾驶场景(附代码解析)

本文深入解析了MTGS(多轨迹高斯泼溅)技术在自动驾驶场景重建中的工程实践。该方法通过分层场景表示,巧妙融合多轨迹数据,利用3D高斯泼溅技术统一处理静态几何与动态物体,有效解决了复杂环境下的重建难题。文章结合代码,详细阐述了其实现框架、损失函数设计及优化策略,为构建高保真数字孪生场景提供了实用指南。

v5w6x的博客 444

MongoDB私人学习笔记

将数据进行分片,由多个服务器来分别承担分片数据,通过路由计算规则来觉得存储的数据所在的分区位置,故客户端对数据的读写操作,可能分到不同的片区由不同的服务器来处理,达到了负载均衡的能力,但是如果有个别片区的服务宕机了,那么就无法提供这一片区的数据服务,没有容灾备份的能力。OR条件: db.mycoll.find({$or:[{title:"mongo"},{state:"ok"}]}) 查询title="mongo" OR state="ok"的数据。

奕辰杰的博客 693

若依开源框架(分离版)在人大金仓数据库下使用

对于甲方业务特殊要求,使用国产化数据库人大金仓,作为项目主要存储。这里以若依开源框架整合人大金仓为例,演示如何在真实项目中引入人大金仓。

🐱喵测实验室 5942

Vue3 - 超详细最新 wangEditor V5 富文本编辑器安装引入及使用教程,提供工具栏配置、基础富文本功能、API使用示例教程等(新手小白快速引入并植入到项目中)

vue3,wangEditorv5富文本编辑器,wangEditorv5官方文档,vue3最新安装wangEditorv5富文本详细使用教程,vue3使用wangEditorv5编辑器示例代码,vue3网站网页安装植入富文本编辑器教程,vue3wangEditor使用api,vue3安装富文本控制台出现报错如何解决,vue3wangEditor-v5工具栏配置,vue3中使用富文本编译器wangEditor5的方法,wangeditor5在vue3中的全使用过程,vue3超详细最新wangedi

🏆 前端领域优质创作者 4253

MongoDB学习笔记(一) MongoDB介绍及安装

MongoDB学习笔记(一) MongoDB介绍及安装

yczhouhy的专栏 690

详细推导波特图增益和相位曲线

最近因为项目需求,在回看波特图方面的内容。大三那会,《自动控制原理》这本书里面就讲过这些东西,但是那时候总感觉学这些没啥用,反正以后也用不到,对这种课程的重视度不是很高。 工作后发现,只要你从事的是和本专业相关的工作,大学学过的很多理论课程在后面大概率都会用到。曾经那些我们在学校以为用不上的东西,熟不知在后面用处还多着呢。所以啊,仅仅只是我们的以为而已! 现在还在学校的同学,对待《自动控制理论》、《信号与系统》、《通信原理》这样的核心专业课,建议还是好好学习一下,认真听听课。哪怕是考试完以后就会忘掉,但当我

D_Katter的博客 3936

mongodb 学习笔记

Mongo是一个基于分布式文件存储的Nosql数据库。支持的数据结构非常松散,可以通过json格式来修改插入数据。

wangqiang996的博客 1157

第三方 API 调用 OpenClaw 出现 LLM request timed out 的解决方案

本文主要介绍了第三方 API 调用 OpenClaw 出现 LLM request timed out 的解决方案,希望能对使用OpenClaw的同学们有所帮助。 文章目录 1. 问题描述 2. 解决方案

weixin_43178406的博客 8万+

《Python全栈系列教程》专栏介绍及文章汇总

《Python全栈系列教程》专栏介绍及文章汇总

孤寒者的博客 71万+

mongodb学习笔记

   首先附上mongodb的安装包下载地址,其中包括windows和linux的两个安装包 :https://pan.baidu.com/s/1aZpgDIXCAG-voMZY9uMMSw 安装步骤      以Windows为例,直接解压Windows版本,在你的盘目录在创建一个叫mongo的文件夹,在这个文件件里面建立一个叫db的文件夹,用来存放安装程序,在建立一个log的txt用来存放日志...

qq_36174184的博客 937

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

MongoDB学习笔记(自用)

MongoDB学习笔记(自用)

m0_62053268的博客 928

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

学习笔记:MongoDB

MongoDB 数据模型是面向文档的, 所谓文档就是一种类似于 JSON 的结构, 简单理解 MongoDB 这个数据库中存在的是各种各样的 JSON(BSON)在 MongoDB 中, 数据库和集合都不需要手动创建, 当我们创建文档时, 如果文档所在的集合或者数据库不存在,

2302_80795993的博客 1298

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

MongoDB 学习笔记(入门看这一篇足矣)

MongoDB 是由C++语言编写的,是一个基于分布式文件存储的开源数据库系统。旨在为WEB应用提供可扩展的高性能数据存储解决方案。百度百科介绍从上面的描述可以得知MangoDB 由 c++ 编写,运行效率自然不低分布式文件存储系统开源数据库系统,谁都可以用一个 MongoDB 可以建立多个数据库MongoDB 的默认数据库是 “”db” ,该数据库存储在 data 目录中。

2501_90254378的博客 899

Java最新面试之MongoDB(1),原创Kafka学习笔记

它是当前备份集群(replica set)中负责处理所有写入操作的主要节点/成员。在一个备份集群中,当失效备援(failover)事件发生时,一个另外的成员会变成 primary。Seconday 从当前的 primary 上复制相应的操作。它是通过跟踪复制 oplog()做到的。关于面试刷题也是有方法可言的,建议最好是按照专题来进行,然后由基础到高级,由浅入深来,效果会更好。Java基础部分算法与编程数据库部分。

wsjh156456的博客 821
上一篇: C#操作PDF文档--PDFBox读取pdf文档,O2S.Components.PDFRender4NET生成缩略图
下一篇: 编程训练:潜伏(9528)
John-Han
博客等级 码龄12年 12粉丝 39原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值