NoSQL学习二:MongoDB基本管理命令

一、MongoDB命令帮助

  在安装MongoDB后,启动服务器进程(mongod),可以通过在客户端命令mongo实现对MongoDB的管理和监控:

这是MongoDB最上层的命令列表,主要是管理数据库的:数据库操作帮助、集合操作帮助、管理帮助。如果想了解数据库操作更详细的命令,可以直接使用db.help(),如下所示:

二、基本命令

  1、show dbs
    显示当前数据库服务器上的数据库
  2、use pagedb
     切换到指定数据库pagedb的上下文,可以在此上下文中管理pagedb数据库以及其中的集合等
  3、show collections
    显示数据库中所有的集合(collection)
  4、db.serverStatus()  
黄色别墅
    查看数据库服务器的状态。 
 
  5、查询指定数据库统计信息
    use myDatabase
    db.stats() 
 
  6、查询指定数据库包含的集合名称列表 
    
 

三、基本DDL和DML

  3.1 数据库操作

  •   切换、创建数据库 use yourDB
  •   查询所有数据库 show dbs
  •   删除当前使用数据库 db.dropDatabase()
  •   从指定主机上克隆数据库 db.cloneDatabase("127.0.0.1")
  •   从指定的机器复制数据库数据到某个数据库 db.copyDatabase("mydb","temp","127.0.0.1")
  •   修复数据库 db.repairDatabase()
  •   查看当前使用的数据库 db.getNamedb
  •   显示当前数据库状态 db.stats()
  •   当前db版本 db.version()
  •   查看当前数据库机器地址 db.getMongo()  326电影网

  3.2 集合操作

  •   创建集合 db.createCollection('collName',{size:20,capped:5,max:100}) 创建成功会显示{"ok":1}
  •   得到指定名称的集合 db.getCollection("account")
  •   得到当前数据库所有集合 db.getCollectionNames()
  •   得到当前数据库所有集合索引的状态 db.printCollectionStats()

  3.3 用户相关

  •   添加用户 db.addUser("name")db.addUser("userName","pwd123",true) 设置密码、是否只读
  •   数据库认证 db.auth("userName","123123")
  •   显示当前所用用户 show users
  •   删除用户 db.removeUser("userName")

  3.4 集合查询

  •   查询所用记录 db.userInfo.find() 默认每页显示20条记录
  •   查询去掉后的当前集合中的某列的重复数据 db.userInfo.disinct("name")
  •   等于 db.userInfo.find({"gae":22}) 查询age==22的集合
  •   大于 db.userInfo.find({"age":{$gt:22}})
  •   小于 db.userInfo.find({"age":{$lt:22}})  
  •   包含 db.userInfo.find({name:/mongo/})性喜剧
  •   开头 db.userInfo.find({name:/^mongo/})
  •   查询指定列name、age db.userInfo.find({},{name:1,age:1})
  •   查询指定数据 db.userInfo.find({age:{$gt25}},{name:1,age:1})
  •   升序 db.userInfo.find().sort({age:1})
  •   降序 db.userInfo.find().sort({age:-1})
  •   查询前5条数据 db.userInfo.find().limit(5)
  •   查询10条以后的数据 db.userInfo.find().skip(10)
  •   查询5-10条数据 db.userInfo.find().limit(10).skip(5)
  •   与查询 db.userInfo.find({$or:[{age:22},{age:25}]})
  •   查询第一条数据 db.userInfo.findOne()
  •   查询集合的条数 db.userInfo.find().count()
  •   按某列进行排序 db..find({sex:{$exists:true}}).count()
  •     group  db.userInfo.group({"key": {"age": true},"initial": {"user": []},reduce": function(cur,prev){prev.user.push(cur.name);}
        参数选项:

             1.key: 这个就是分组的key 2.initial: 每组都分享一个初始化函数,特别注意:是每一组initial函数。 3.reduce: 这个函数的第一个参数是当前的文档对象,第二个参数是上一次function操作的累计对象。有多少个文档, $reduce就会调用多少次。            4.condition: 这个就是过滤条件。 5.finalize: 这是个函数,每一组文档执行完后,多会触发此方法。

  3.5 索引

  •   添加索引 db.users.ensureIndex({"name":1}) ensureIndex方法参数中,数字1表示升序,-1表示降序。326影视
  •   唯一索引 db.users.ensureIndex({"name":1},{"unique":true})
  •   组合索引 db.users.ensureIndex({"name":1, "age":-1})
  •   查看索引 db.users.getIndexes()
  •   查询索引 db.users.find({"name":"k"}).hint({"name":1,"age":1})
  •   删除索引 db.users.dropIndexes()
  •   删除指定索引 db.users.dropIndex("name_1")
作者: 【逸然微笑】
出处: http://www.cnblogs.com/weixiao520/
主要研究技术:专注于Winform开发、Web开发。
转载:欢迎转载,为了保存作者的创作热情,请按要求【转载】,谢谢
### 光流法C++源代码解析与应用 #### 光流法原理 光流法是一种在计算机视觉领域中用于追踪视频序列中运动物体的方法。它基于亮度不变性假设,即场景中的点在时间上保持相同的灰度值,从而通过分析连续帧之间的像素变化来估计运动方向和速度。在数学上,光流场可以表示为像素位置和时间的一阶导数,即Ex、Ey(空间梯度)和Et(时间梯度),它们共同构成光流方程的基础。 #### C++实现细节 在给定的C++源代码片段中,`calculate`函数负责计算光流场。该函数接收一个图像缓冲区`buf`作为输入,并初始化了几个关键变量:`Ex`、`Ey`和`Et`分别代表沿x轴、y轴和时间轴的像素强度变化;`gray1`和`gray2`用于存储当前帧和前一帧的平均灰度值;`u`则表示计算出的光流矢量大小。 #### 图像处理流程 1. **初始化和预处理**:`memset`函数被用来清零`opticalflow`数组,它将保存计算出的光流数据。同时,`output`数组被填充为白色,这通常用于可视化结果。 2. **灰度计算**:对每一像素点进行处理,计算其灰度值。这里采用的是RGB通道平均值的计算方法,将每个像素的R、G、B值相加后除以3,得到一个近似灰度值。此步骤确保了计算过程的鲁棒性和效率。 3. **光流向量计算**:通过比较当前帧和前一帧的灰度值,计算出每个像素点的Ex、Ey和Et值。这里值得注意的是,光流向量的大小`u`是通过`Et`除以`sqrt(Ex^2 + Ey^2)`得到的,再乘以10进行量化处理,以减少计算复杂度。 4. **结果存储与阈值处理**:计算出的光流值被存储在`opticalflow`数组中。如果`u`的绝对值超过10,则认为该点存在显著运动,因此在`output`数组中将对应位置标记为黑色,形成运动区域的可视化效果。 5. **状态更新**:通过`memcpy`函数将当前帧复制到`prevframe`中,为下一次迭代做准备。 #### 扩展应用:Lukas-Kanade算法 除了上述基础的光流计算外,代码还提到了Lukas-Kanade算法的应用。这是一种更高级的光流计算方法,能够提供更精确的运动估计。在`ImgOpticalFlow`函数中,通过调用`cvCalcOpticalFlowLK`函数实现了这一算法,该函数接受前一帧和当前帧的灰度图,以及窗口大小等参数,返回像素级别的光流场信息。 在实际应用中,光流法常用于目标跟踪、运动检测、视频压缩等领域。通过深入理解和优化光流算法,可以进一步提升视频分析的准确性和实时性能。 光流法及其C++实现是计算机视觉领域的一个重要组成部分,通过对连续帧间像素变化的精细分析,能够有效捕捉和理解动态场景中的运动信息
微信小程序作为腾讯推出的一种轻型应用形式,因其便捷性与高效性,已广泛应用于日常生活中。以下为该平台的主要特性及配套资源说明: 特性方面: 操作便捷,即开即用:用户通过微信内搜索或扫描维码即可直接使用,无需额外下载安装,减少了对手机存储空间的占用,也简化了使用流程。 多端兼容,统一开发:该平台支持在多种操作系统与设备上运行,开发者无需针对不同平台进行重复适配,可在一个统一的环境中完成开发工作。 功能丰富,接口完善:平台提供了多样化的API接口,便于开发者实现如支付功能、用户身份验证及消息通知等多样化需求。 社交整合,传播高效:小程序深度嵌入微信生态,能有效利用社交关系链,促进用户之间的互动与传播。 开发成本低,周期短:相比传统应用程序,小程序的开发投入更少,开发周期更短,有助于企业快速实现产品上线。 资源内容: “微信小程序-项目源码-原生开发框架-含效果截图示例”这一资料包,提供了完整的项目源码,并基于原生开发方式构建,确保了代码的稳定性与可维护性。内容涵盖项目结构、页面设计、功能模块等关键部分,配有详细说明与注释,便于使用者迅速理解并掌握开发方法。此外,还附有多个实际运行效果的截图,帮助用户直观了解功能实现情况,评估其在实际应用中的表现与价值。该资源适用于前端开发人员、技术爱好者及希望拓展业务的机构,具有较高的参考与使用价值。欢迎查阅,助力小程序开发实践。资源来源于网络分享,仅用于学习交流使用,请勿用于商业,如有侵权请联系我删除!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值