Mongodb相关 (Shell命令 / mongoose)
Mongodb相关
1.创建一个文件夹作为数据库存放的目录
2.打开cmd cd到Mongodb/bin目录去
3.执行mongod --dbpath "第一项创建的文件夹(数据库数据存放目录)"
4.打开新终端,原窗口最小化,运行bin目录下的mongo可执行文件,连接数据库
MongodbShell命令
- use dbName
切换到某个数据库,如果dbname不存在,则会创建并切换
- db.dropDatabase()
删除当前数据库(前提是先进入到当前数据库)
- show dbs
查询所有的数据库
- db.createCollection("tableName")
在当前数据库中创建一张数据表,这个命令不常用
- show collections
查看当前数据库中的所有表(数据集合)
db.tableName.insert();
使用表时如果不存在,会自动创建
- db.tableName.insert({name:'baimao',age:12,sex:'女'})
创建一张表并插入一条数据
- db.tableName.save({name:'baimao',age:12,sex:'女'})
向数据库的某个数据集合插入一条数据
- db.tableName.find({name:'baimao',age:12})
查询name=baimao且age=12的元祖
根据查询条件来查询当前表,并集查询条件用,号
find也可以不写参数,查出全部数据
- db.tableName.find({$or:[{name:'baimao'},{age:18}]});
查询满足name=‘baimao’或者age=18的元祖
- db.tableName.find({age:{$lt:23}})
db.tableName.find({age:{$lte:23}})
db.tableName.find({age:{$gt:23}})
db.tableName.find({age:{$gte:23}})
db.tableName.find({age:{$ne:23}})
查询年龄<(<=,>,>=,!=)23的所有元祖
- 支持正则表达式的查询
查询条件支持正则表达式:
db.people.find({name:/四/}) 查找姓名包含:四 的人
db.people.find({name:/^张/}) 查找姓 张 的人
db.people.find({name:/^张.$/}) 查找姓 张 的人并且不能以空格结束
db.people.count() 集合中数据个数
db.people.find({},{name:1,_id:0}) 只查找name这一列(field)
- db.person.count()
计算当前表的元祖数目
- db.person.find().sort({age:1})
将年龄正序排序
- db.person.find().sort({age:-1})
将年龄逆序排序
- db.person.find().skip(n)
跳过(删除)查询结果中前n条数据。
- db.person.find().limit(n)
从查询结果中取前n条数据。
- db.preson.find().skip(2).limit(3)
从查询结果中取第二条后开始的三条数据
1.插入数据: db.person.insert({"name":"baimao","age":"16"});
2.查找数据: db.person.find();
db.person.find({"name":"baimao"}) ==>可以根据指定查询条件查询
3.更新数据: 整体更新:
db.person.update({"name":"baimao"},{"name":"baimao","age":"15"})
[这种方法在更新字段处写全全部的key和value值]
局部更新:
(1)
var user = db.person.findOne({"name":"baimao"});
user.age = 12;
db.person.update({"name":"baimao"},user);
(2)$inc
db.person.update({"name":"baimao"},{$inc:{"age":30}}); 将baimao的年龄增加30
(3)$set
db.person.update({"name":"baimao"},{$set:{"age":12}}); 将baimao的年龄设置为12
批量更新
db.person.update({"name":"baimao"},{$set:{"age":12}},{mutli:true})
[将所有name为baimao的字段的age属性都设置为12
更新数据(如若没有就增加)
db.person.update({"name":"baimao"},{$set:{"age":12}},{mutli:true},{upsert:true})
[将update的第四个参数设置为true就可实现在查询不到结果的情况下直接增加一条记录]
4.删除数据:
db.person.remove({}); ==> 删除全部
db.person.remove({"name":"baimao"}) 删除指定数据
5.查询:
$gt >
$gte >=
$lt <
$lte <=
$ne !=
无(:) =
无(,) &&
$or || (or指的是在某些键值对中查询)
$in in (in指的是某个key值在一个value值组成的数组中查询)
$nin notIn
正则查询: db.person.find({"name":/^b/,"name":/o$/}) name字段以b开头以o结尾
js方法查询: db.person.find({$where:function() {return this.name == 'baimao'});
Mongodb与Nodejs相关
1.引入Mongodb接口Moogoose
2.node连接数据库(moogoose.connect("mongodb://localhost:27017/data")) data为数据库名称
2.定义模式Schema(模式中定义属性或字段的类型等)模式定义结构
var Schema = moogoose.Schema
var student_Schema = new Schema( {
name:String,
id:Number,
...
},
{
//禁止moogoose创建集合时默认给集合添加versionKey属性
versionKey:false
});
3.根据模式Schema定义模型model 模型操作实例 moogose.model("Student",student_Schema)
4.访问模型 var myStudent = mongoose.model("Student");
或者
var myStudent = mongoose.model("Student",{
name:String,
id:Number,
...
},{
versionKey:false
});
5.创建实例
var student = new myStudent({
name:'baimao',
id:123,
})
归纳:
1.引入mongoose
2.设置mongoose连接并监听on('open'/'error')
3.引用 mongoose自带的Schema
4.通过mongoose自带的Schema设置自定义的Schema(定义表的结构)
5.将自定义的Schema设置在mongoose.model()中 mongoose.model("Comment",Comment_schema); 设置一张表的结构
6.自定义model var MyComment = mongoose.model("Comment"); 创建表
7.创建表的实例 var sam = new MyComment({name:'hhh',age:'jjj'}); 只在save的时候用
mongoose数据的删改查方法通过表来实现 即MyComment来实现 而增加需要表的实例
Mongodb相关 (Shell命令 / mongoose)的更多相关文章
- 统计行数、文件夹个数、文件个数的相关shell命令
极客君最近做项目,刚好遇到需要统计一些sql文件数量的问题,用到一些实用的shell命令,记录下来,以后万一还能用上呢? 如果在终端不打开文件看到一共多少行,则可以使用wc命令来实现: wc -l [ ...
- 测试相关shell命令总结2——结构控制语句,命令行参数
1,shell 中单引号和双引号的区别,单引号不进行解释.双引号进行解释 1,在shell中进行数学运算,放在$和[]中 $[1+2] 有些很奇怪,在.sh文件中放在(())中貌似也能够进行数学运算. ...
- MongoDB 常用shell命令汇总
//指定用户名和密码连接到指定的MongoDB数据库 mongo 192.168.1.200:27017/admin -u user -p password use youDbName 1.Mongo ...
- MongoDB通过JavaDriver执行shell命令,例如创建sharding collection
Mongodb的java driver本身的接口 void createCollection(String collectionName, CreateCollectionOptions create ...
- 快速掌握mongoDB(一)——mongoDB安装部署和常用shell命令
1.mongoDB简介 mongoDB 是由C++语言编写的,是一种分布式的面向文档存储的开源nosql数据库.nosql是Not Only SQL的缩写,是对不同于传统的关系型数据库的数据库管理系统 ...
- mongoDB(一)——mongoDB安装部署和常用shell命令
1.mongoDB简介 mongoDB 是由C++语言编写的,是一种分布式的面向文档存储的开源nosql数据库.nosql是Not Only SQL的缩写,是对不同于传统的关系型数据库的数据库管理系统 ...
- python 之调用Linux shell命令及相关高级应用
最近根据老大要求,将数据进行同步备份,结合第三方提供的工具.第三方服务其实是有python demo的,本想研究下实际的python sdk搞个demo开发的,但是发现有些组建装起来确实头大,而且本公 ...
- 孤荷凌寒自学python第五十六天通过compass客户端和mongodb shell 命令来连接远端MongoDb数据库
孤荷凌寒自学python第五十六天通过compass客户端和mongodb shell 命令来连接远端MongoDb数据库 (完整学习过程屏幕记录视频地址在文末) 今天是学习mongoDB数据库的第二 ...
- Matlab使用新发现1(小技巧:shell 命令、工程工作目录设置相关)
最近在调试一个基于Matlab的程序,在偶然间发现了几个比较有趣的技巧,给大家分享一下(很可能是太菜鸟了,没有涉及这方面,大方之家请勿见笑,对您有所帮助请点赞!) 1. Matlab语言是一种解释型语 ...
随机推荐
- 【Android Developers Training】 104. 接受地点更新
注:本文翻译自Google官方的Android Developers Training文档,译者技术一般,由于喜爱安卓而产生了翻译的念头,纯属个人兴趣爱好. 原文链接:http://developer ...
- python迭代器生成器(三)
扩展的列表解析语法 今天接着昨天的继续写. 列表解析可以变得更加复杂---例如,它可以包含嵌套的循环,也可能被编写为一系列的for子句.(这里只是简单介绍一下,以后再说这个语法的问题) 例如:构建一个 ...
- MOF编译器无法连接VMI服务器。原因可能是语义错误的解决方案
安装数据库时报错. 我这个是因为安装SQL SERVER时,没有卸载vs. 一般解决方法: WIN 7安装VS和SQL SERVER的顺序应该是先安装SQL SERVER 然后安装VS,当要重装SQL ...
- Python系列教程(三):输入和输出
1.1 raw_input() 在Python中,获取键盘输入的数据的方法是采用 raw_input 函数(至于什么是函数,咱们以后的章节中讲解),那么这个 raw_input 怎么用呢? 看如下示例 ...
- QQ信鸽推送
闲来无事,看看腾讯的信鸽推送! 优点: 1.毕竟大腿出的东西,不会太差 2.集成快 3.推送效率高,功能强,APP后台被杀的情况下同样能接受到推送. 废话少说,直接上代码: 源代码.zip
- Jenkins 配置邮件通知
jenkins 是一个开源的自动化服务器.通过Jenkins,可以通过自动化加速软件开发过程.Jenkins管理和控制各种开发的生命周期过程,包括构建,文档,测试,包,阶段,部署,静态分析等等.您可以 ...
- SDP
SDP语法 一个SDP描述含有会话级信息和媒体级信息.会话级信息应用于整个会话.例如:它能成为会话始发者或者会话的名字.媒体级信息作用于特殊的媒体流.例如:它能作为一个编码器给音频流编码或者是给视频流 ...
- 推荐给IT运维工程师必须学习的4本Linux书籍
我们的人生如游戏,每个人都扮演着不同的角色,有普通玩家.NPC.普通野怪,终极Boss,都有不同的级别之分,我们在技术方面又何尝不是呢,我们大部分人都是普通野怪,遍地都是,很容易被别人虐,没有什么特殊 ...
- HTML5中a标签的锚点使用
前几天有个用户问我关于在线手册功能里的锚点问题.因为他通过代码发现,在编辑手册内容时,锚点的设置是通过id选择器来制定的,而不是带有name属性的a标签.其实这是HTML5和HTML4(XHTML)等 ...
- Java用Cookie简单限制点赞次数
楼主最近在搞一个当下比较流行的点赞功能,这个功能也是让程序员又爱又恨啊 说起爱,点赞是个社会化的动作,全民都在为美好的事情,行为,动作,点赞. 说起恨,你很难在用户没有登录的情况下限制恶意点赞的机器人 ...