mongodb 简单使用说明
首先安装 mongodb
软件地址
https://www.mongodb.org/downloads#production;
然后在 mongodb安装目录下找到bin 文件夹进去 在它的位置上按下Shift+鼠标右键 选择 在此处打开命令窗口
我的目录是C:\Program Files\MongoDB\Server\3.0\bin
然后在命令窗体中输入 mongod --dbpath=path
path 是数据库文件的存储路劲 必须存在
注意:这个命令窗体不能关 关闭这个窗口就相当于停止了mongodb服务
在C:\Program Files\MongoDB\Server\3.0\bin下 再打开一个命令行窗口
命令窗体中输入 mongo --host=127.0.0.1 或者 mongo 按回车键
:--host后的值表示服务器的ip地址
对数据库的操作
use 数据库名字 我们刚创建的数据库 person 如果不在列表内, 要显示它,我们需要向 person 数据库插入一些数据
db.person.insert({name:"zhangSan",age:30})
show dns 看有什么数据库
查看当前使用的数据库
db或者db.getName()
MongoDB 删除数据库
db.dropDatabase();
MongoDB 断开与mongodb服务的连接
exit
MongoDB 查看命令api
集合的操作方法
查看帮助api
db.worker.help()
查看当前数据库下有哪集合(collection)
show collections
创建集合
db.createCollection(collection_Name) collection_Name集合的名称
db.collection_Name.insert(document)
db.collection_name.count()查看集合有几条数据
db,collection_name.drop() 删除当前数据库中的集合
文档的插入
insert()
db.worker.insert({name:'zpx',age:6})
db.worker.insert([{name:'wangWu',age:50},{name:'xiaoMing',age:60}])
向worker集合添加多个[{name:'wangWu',age:50},{name:'xiaoMing',age:60}]
save()
db.person.save({name:"xiaoHong",age:50})
db.person.save({_id:ObjectId("562c9caf671c978b6596e825"),name:"xiaoHong",age:10})
文档的更新
update()
db.collection.update(
<query>,
<update>,
{
upsert: <boolean>,
multi: <boolean>,
writeConcern: <document>
}
)
query : update的查询条件,类似sql update查询内where后面的。
update : update的对象和一些更新的操作符(如$set,$inc...)等 $inc在原基础上累加后更新 $set直接更新
upsert : 可选,这个参数的意思是,如果不存在update的记录,是否插入objNew,true为插入,默认是false,不插入。
multi : 可选,mongodb 默认是false,只更新找到的第一条记录,如果这个参数为true,就把按条件查出来多条记录全部更新。
writeConcern :可选,抛出异常的级别
db.worker.update({name:'liSi'},{$set:{name:'liSi_update'}}) 将document数据中name是liSi 的数据的name修改为liSi_update
注:如果有多条name是liSi的数据只更新一条
db.worker.update({name:'liSi_update'}, {$set: {age:40}},{multi:true}) 将document数据中name是liSi_update 的数据的age修改为 40
注:如果有多条name是liSi的数据这些数据全部更新
db.person.update({name:'pangzi'},{$inc:{age:1}}) 将document数据中name是lliSi_update 的数据的age在原来的基础上加1
文档的删除
remove();
db.collection.remove(
<query>,
<justOne>
)
如果你的 MongoDB 是 2.6 版本以后的,语法格式如下:
db.collection.remove(
<query>,
{
justOne: <boolean>,
writeConcern: <document>
}
)
query :(可选)删除的文档的条件。
justOne : (可选)如果设为 true 或 1,则只删除一个文档。
writeConcern :(可选)抛出异常的级别。
db.worker.remove({name:'fJianZhou'}) 删除worker集合里name是fJianZhou的所有Document数据
db.person.remove({name:"xiaoHong"},1) 删除person集合里name是xiaoHong的第一条数据
查询文档
find();
db.worker.find({},{age:1}) 查询指定列
db.person.find().pretty() .pretty()方法以格式化的方式来显示所有文档。
db.person.findOne() 匹配第一条数据
查询条件操作符
db.person.find({age:{$gt:30})大于30的数据
$gt >
$gte >=
$lt <
$lte <=
$ne !=
$in 包含
$exists 是否存在
使用 _id进行查询
db.person.find('_id',ObjectId());
db.person.find().count() 条数
查询某个字段的值当中是否包含另一个值
db,person.find({name:/pang/})
开头结尾
/^pang/
/pang$/
or 条件查询
db.person.find({$or:[{key1:value},{},{}]})
or and
db.person.find(key1:1,key2:2,$or:[])
limit();
db.person.find().limit(2)查询前2条数据
db.person.find().skip(2)跳过前两条数据
sort
db.person.find().sort({age:1}) age升序排序
安装 mongoose
npm install mongoose
引用mongoose:
var mongoose = require("mongoose");
使用"mongoose"连接数据库:
var db = mongoose.connect("mongodb://user:pass@localhost:port/database");
执行下面代码检查默认数据库test,是否可以正常连接成功?
例如
var mongoose = require("mongoose");
var db = mongoose.connect("mongodb://123.57.143.189:27017/zfpx");
db.connection.on("error", function (error) {
console.log("数据库连接失败:" + error);
});
db.connection.on("open", function () {
console.log("数据库连接成功");
});
Schema
定义一个模型骨架
var PersonSchema = new mongoose.Schema({
name : { type:String },
age : { type:Number, default:0 },
time : { type:Date, default:Date.now },
email: { type:String,default:''}
});
基本属性类型有:字符串、日期型、数值型、布尔型(Boolean)、null、数组、内嵌文档等。
String Date Number Boolean Null Array
创建一个model
var PersonModel=db.model('person',PersonSchema);
注意 mongoose会在数据库寻找person这个复数的集合 而不会去找person
可以把他放到全局
global.Model=function(modName){
//console.log(modName)
return mongoose.model(modName)
};
用的时候如果要往里边更新数据插入数据需要new一个 如果查询就不需要了
new Model(集合)(数据)
user==数据
entity保存方法
new Model('User')(user).save(function(err,user){})
保存数据
Model保存方法
new Model('User').create(user,function(){})
查询数据
Model('User').find(user,function(err,doc){})
返回只包含name、age两个键的所有记录
Model('user').find({},{name:1, age:1, _id:0},function(err,docs){
//docs 查询结果集
})
Model('user').findOne()
Model('user').findById()
Model('user').find({name:{$exists:true}},function(){})//查询所有存在name属性的文档
数据更新
Model('User').update({name:'junyu'},{$set:{name:'pangzi'}},function(err){}) //一条
Model('User').update({name:'junyu'},{$set:{name:'pangzi'}},{multi:true},function(err){})//所有
游标操作
Model('user').find({},null,{limit:20},function(){})
Model('user').find({},null,{skip:20},function(){})
Model('user').find({},null,{sort:{age:-1}},function(){})降序
mongodb 简单使用说明的更多相关文章
- Oracle 中 union 和union all 的简单使用说明
1.刚刚工作不久,经常接触oracle,但是对oracle很多东西都不是很熟.今天我们来了解一下union和union all的简单使用说明.Union(union all): 指令的目的是将两个 S ...
- MongoDB学习:(二)MongoDB简单使用
MongoDB学习:(二)MongoDB简单使用 MongoDB使用: 执行mongodb的操作之前,我们需要运行命令,来进入操作命令界面 >mongo 提示该错误,说明我们系统缺少一个补丁,该 ...
- struts 标签<s:ierator>的简单使用说明
struts 标签<s:ierator>的简单使用说明,只显示<s:ierator> 的前6条数据 <s:iterator value="lstVisitor& ...
- Spring依赖注入 --- 简单使用说明
Spring依赖注入 --- 简单使用说明 本文将对spring依赖注入的使用做简单的说明,enjoy your time! 1.使用Spring提供的依赖注入 对spring依赖注入的实现方法感兴趣 ...
- mongodb 简单部署方案及实例
mongodb 简单部署方案及实例 转载:http://my.oschina.net/zhuzhu0129/blog/53290 第一节 准备工作 一 安装mongodb 我这里选用rehl 5.6 ...
- .Net Core MongoDB 简单操作。
一:MongoDB 简单操作类.这里引用了MongoDB.Driver. using MongoDB.Bson; using MongoDB.Driver; using System; using S ...
- python和mongodb简单交互
python和mongodb简单交互 1.安装pymongo: pip3 install pymongo 2.pymongo的简单用法: # /usr/bin/env python3 import p ...
- MongoDB简单CRUD场景
MongoDB简单CRUD命令操作 (1)新建数据库:use 数据库名 (2)显示所有数据库:show dbs; (3)新建集合(两种方式) 隐式创建:在创建集合的同时往集合里面添加数据---db. ...
- Linux下源码安装ffmpeg及ffmpeg的简单使用说明
一.编译安装 ffmpeg在安装时依赖的包和版本都很让人头疼,不同编译环境也各不相同.公司之前封装了一个又各种出错. 其实办法很简单,就是到官网一步一步按着做就行了:http://trac.ffmpe ...
随机推荐
- windows系统常用命令
dir 指定要列出的驱动器,显示当前文件夹下的文件 /?可显示所有命令 显示当前路径下的所有文件的绝对路径,包含子文件夹中的内容 D:\test > dir /b /s /o:n /a:a ...
- java修饰符的权限范围
java有四个修饰符,分别为public/protected/default/private,这四个修饰符的权限范围是不一样的. public修饰的成员,在同类.同包.子类(继承自本类).其他包中都可 ...
- tensorflow-笔记02
TensorFlow扩展功能 自动求导.子图的执行.计算图控制流.队列/容器 1.TensorFlow自动求导 在深度学习乃至机器学习中,计算损失函数的梯度是最基本的需求,因此TensorFlow也原 ...
- 阿里云 轻量应用服务器 上传一个HTML文件或者jsp文件 通过外网IP访问
我选择的是 宝塔Linux,现在就说一下如何往服务器里面传文件然后通过外网IP访问 1.打开宝塔Linux面板登录,安装tomcat,安装好后如图 2.点击tomcat有个文件标识处 3.出现如图 4 ...
- android studio下 library打包文件(.aar)和本地引用
关键点: 利用Gradle发布本地maven库支持android library 打包文件(*.aar) 的本地引用 开发环境: windows7 64位操作系统 android studio0.5. ...
- 【Oracle】获取SQL执行计划
一.plsql developer工具F5 在sqldeveloper中选中sql按F5即可查看执行计划
- 使用JDK的zip编写打包工具类
JDK自带的zip AIP在java.util.zip包下面,主要有以下几个类: java.util.zip.ZipEntryjava.util.zip.ZipInputStreamjava.util ...
- 分页工具类PageResult
1.工具类 public class PageResult implements Serializable { private Long total;//总记录数 private List rows; ...
- pandas-10 pd.pivot_table()透视表功能
pandas-10 pd.pivot_table()透视表功能 和excel一样,pandas也有一个透视表的功能,具体demo如下: import numpy as np import pandas ...
- 要想获取select的值,使用ng-modle,否则无法获取select 的值
ng-bind是从$scope -> view的单向绑定 ng-modle是$scope <-> view的双向绑定 <form role="form" c ...