首页
Web开发
Windows程序
编程语言
数据库
移动开发
系统相关
微信
其他好文
会员
首页
>
数据库
> 详细
nodejs(三)下值mangoDB
时间:
2016-10-21 00:15:47
阅读:
242
评论:
0
收藏:
0
[点我收藏+]
标签:
mongoDB
简介
一、什么是MongoDB ?
1、
MongoDB 是由
C++语言编写的,是一个基于分布式文件存储的开源数据库系统。在高负载的情况下,添加更多的节点,可以保证服务器性能。
2、
MongoDB 旨在为
WEB应用提供可扩展的高性能数据存储解决方案。
3、
MongoDB 将数据存储为一个文档,数据结构由键值
(key=>value)对组成。
MongoDB 文档类似于
JSON 对象。字段值可以包含其他文档,数组及文档数组。
二、历史
1
、2007
年10
月,MongoDB
由10gen
团队所发展。2009
年2
月首度推出。
2、
2012年
05月
23日,
MongoDB2.1 开发分支发布了
! 该版本采用全新架构,包含诸多增强。
3
、2012
年06
月06
日,MongoDB 2.0.6
发布,分布式文档数据库。
4、
2013年
04月
23日,
MongoDB 2.4.3 发布,此版本包括了一些性能优化,功能增强以及
bug修复。
5
、2013
年08
月20
日,MongoDB 2.4.6
发布,是目前最新的稳定版。
三、主要特点
1、
MongoDB的提供了一个面向文档存储,基本的思路就是将原来
“行
”的概念换成更加灵活的
“文档
”模型。一条记录可以表示非常复杂的层次关系。
2、
Mongo支持丰富的查询表达式。查询指令使用
JSON形式的标记,可轻易查询文档中内嵌的对象及数组。
3、非常容易扩展。面对数据量的不断上涨,通常有两种方案,一种是购买更好的硬件,别一种是分散数据,进行分布式的扩展,前者有着非常大的缺点,因
为硬件通常是有物理极限的,当达到极限以后,处理能力就不可能再进行扩展了。所以建议的方式是使用集群进行扩展。
MongoDB所采用的面向文档的数据模
型使其可以自动在多台服务器之间分割数据。它还可以平衡集群的数据和负载,自动重排文档。
4
、MongoDB
支持各种编程语言:RUBY
,PYTHON
,JAVA
,C++
,PHP
,C#
等多种语言。
5、丰富的功能。包括索引、存储
JavaScript、聚合、固定集合、文件存储等。
6、方便的管理,除了启动数据库服务器之外,几乎没有什么必要的管理操作。管理集群只需要知道有新增加的节点,就会自动集成和配置新节点。
安装
brew install mongodb
http://blog.sina.com.cn/s/blog_7c8dc2d50101lwka.html
概念
一、数据库
1、一个
mongodb中可以建立多个数据库。
2、
MongoDB的单个实例可以容纳多个独立的数据库,每一个都有自己的集合和权限,不同的数据库也放置在不同的文件中。
3、数据库也通过名字来标识。数据库名可以是满足以下条件的任意
UTF-8字符串。
1.不能是空字符串(
””)。
2.不得含有
’ ‘(空格
)、
.、
$、
/、
\和
\0 (空宇符
)。
3.应全部小写。
4.最多
64字节。
4、有一些数据库名是保留的,可以直接访问这些有特殊作用的数据库。
1.admin:
从权限的角度来看,这是
”root”数据库。要是将一个用户添加到这个数据库,这个用户自动继承所有数据库的权限。一些特定的服务器端命令也只能从这个数据库运行,比如列出所有的数据库或者关闭服务器。
2.local: 这个数据永远不会被复制,可以用来存储限于本地单台服务器的任意集合
3.config: 当
Mongo用于分片设置时,
config数据库在内部使用,用于保存分片的相关信息。
二、文档
文档是
mongodb中的最核心的概念,是其核心单元,我们可以将文档类比成关系型数据库中的每一行数据。
多个键及其关联的值有序的放置在一起就是文档。
MongoDB使用了
BSON这种结构来存储数据和网络数据交换。
BSON数据可以理解为在
JSON的基础上添加了一些
json中没有的数据类型。
如果我们会
JSON,那么
BSON我们就已经掌握了一半了,至于新添加的数据类型后面我会介绍。
文档例子如下:
{name:”
张三”,age:20,hobby:[“
看书”,”
旅游”,”
唱歌”]}
需要注意的是:
1. 文档中的键
/值对是有序的。
2. 文档中的值不仅可以是在双引号里面的字符串,还可以是其他几种数据类型(甚至可以是整个嵌人的文档
)。
3. MongoDB
区分类型和大小写。
4. MongoDB的文档不能有重复的键。
5. 文档的键是字符串。除了少数例外情况,键可以使用任意
UTF-8字符。
文档键命名规范:
1 键不能含有
\0 (空字符
)。这个字符用来表示键的结尾。
2 .和
$有特别的意义,只有在特定环境下才能使用。
3 以下划线
”_”开头的键是保留的
(不是严格要求的
)。
三、集合
集合就是一组文档的组合。如果将文档类比成数据库中的行,那么集合就可以类比成数据库的表。
在
mongodb中的集合是无模式的,也就是说集合中存储的文档的结构可以是不同的,比如下面的两个文档可以同时存入到一个集合中:
{“name”:”tangcaiye”}
{“Name”:”tangcaiye”,”sex”:”nan”}
注:当第一个文档插入时,集合就会被创建。
合法的集合名
1. 集合名不能是空字符串
””。
2. 集合名不能含有
\0字符(空字符
),这个字符表示集合名的结尾。
3. 集合名不能以
”system.”开头,这是为系统集合保留的前缀。
4. 用户创建的集合名字不能含有保留字符。有些驱动程序的确支持在集合名里面包含,这是因为某些系统生成的集合中包含该字符。除非你要访问这种系统创建的集合,否则千万不要在名字里出现
$。
四、 MongoDB
数据类型
下表为
MongoDB中常用的几种数据类型。
终端中启动
首先需要指定数据库的地址:
mongod —dbpath=数据库地址
再在终端中键入mongo
在启动之后可以通过可视化数据库管理工具操作
操作mongodb基础
1.创建数据库
use database_name database_name
代表数据库的名字
注:如果数据库不存在,则创建数据库,否则切换到指定数据库
2.查看所有数据库
show dbs
注:我们刚创建的数据库 person
如果不在列表内,
要显示它,我们需要向 person
数据库插入一些数据 db.person.insert({name:”zhangSan”,age:30})
3.查看当前使用的数据库
db
或 db.getName()
注:
db代表的是当前数据库
也就是
person这个数据库
4.删除数据库
db.dropDatabase()
5.断开连接
exit
6.查看命令api
help
操作集合
操作集合方法
查看帮助
api
语法
db.worker.help()
查看当前数据库下有哪集合(
collection)
语法
show collections
创建集合(collection
)
1.
使用 db.createCollection(collection_Name)
方法
语法
db.createCollection(“collection_Name”) collection_Name
集合的名称
2.
使用 db.collection_Name.insert(document)
方法
语法
db.collection_Name.insert(document) collection_Name
集合的名称 document
要插入的文档
注:两者的区别在于前者创建了一个空的
worker集合
后者创建了一个空的
worker集合并添加了一个
Document数据
删除当前数据库中的集合(
collection)
语法
db.collection_Name.drop() collection_Name
集合的名称
文档操作
插入文档
1
、
使用insert()
方法插入文档
语法
db.collection_name.insert(document) collection_name
集合的名字 document
插入的文档
实例
db.worker.insert({name:’zpx’,age:6})
向worker
集合添加一个{name:’zpx’,age:6}
的Document
db.worker.insert([{name:’wangWu’,age:50},{name:’xiaoMing’,age:60}])
向worker
集合添加多个[{name:’wangWu’,age:50},{name:’xiaoMing’,age:60}]
的Document
2、
使用
save()方法插入文档
语法
db.collection_name.save(document) collection_name
集合的名字 document
插入的文档
注:如果不指定 _id
字段 save()
方法类似于 insert()
方法。如果指定 _id
字段,则会更新该 _id
的数据。
实例
db.person.save({name:”xiaoHong”,age:50})
db.person.save({_id:ObjectId(“562c9caf671c978b6596e825”),name:”xiaoHong”,age:10})
文档更新
MongoDB
更新文档
1.update()方法用于更新已存在的文档
语法
db.collection.update(
<query>,
<update>,
{
upset: <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.worker.update({name:’liSi_update’},{$inc:{age:1}})
将document
数据中name
是lliSi_update
的数据的age
在原来的基础上加1
2.save()方法通过传入的文档来替换已有文档
语法
db.collection.save(
<document>,
{
writeConcern: <document>
}
参数说明:
document :
文档数据。
writeConcern :
可选,抛出异常的级别。
实例
db.person.save({_id:ObjectId(“562c9caf671c978b6596e825”),name:”xiaoHong”,age:10})
文档删除
MongoDB
删除文档
remove()方法是用来移除集合中的数据。
注:在执行
remove()函数前先执行
find()命令来判断执行的条件是否正确,这是一个比较好的习惯。
语法
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
的第一条数据
查询文档
MongoDB
查询文档
1.find()
方法
语法
db.collection_name.find() collection_name
集合的名字
实例
db.worker.find()
查询worker
下所有的document
数据
2.find()
方法
查询指定列
语法
db.collection_name.find({queryWhere},{key:1,key:1}) collection_name
集合的名字 key
要显示字段 1
表示显示 queryWhere
参阅查询条件操作符
实例
db.worker.find({},{age:1})
查询指定列
3.pretty()方法以格式化的方式来显示所有文档。
语法
db.collection_name.find().pretty() collection_name
集合的名字
实例
db.worker.find().pretty()
4.findOne()方法查询匹配结果的第一条数据
语法
db.collection_name.findOne() collection_name
集合的名字
实例
查询条件操作符
查询条件操作符
描述:条件操作符用于比较两个表达式并从
mongoDB集合中获取数据。
1.MongoDB (>)
大于操作符 - $gt
语法
db.collectionName.find({<key>:{$gt:<value>}}) collectionName
集合名词 key
字段 value
值
实例
db.worker.find({age:{$gt:30}})
查询age
大于 30
的数据
2.MongoDB
(>=
)大于等于操作符 - $gte
语法
db.collectionName.find({<key>:{$gte:<value>}}) collectionName
集合名词 key
字段 value
值
实例
db.worker.find({age: {$gte: 30}})
查询age 3
大于等于30
的数据
3.MongoDB (<)
小于操作符 - $lt
语法
db.collectionName.find( {<key>:{$lt:<value>}}) collectionName
集合名词 key
字段 value
值
实例
db.worker.find({age: {$lt: 30}})
查询age
小于30
的数据
4.MongoDB (<=)
小于等于操作符 - $lte
语法
db.collectionName.find({<key>:{$lte:<value>}}) collectionName
集合名词 key
字段 value
值
实例
db.worker.find({age: {$lte: 30}})
查询age
小于等于30
的数据
5.MongoDB
使用 (>=)
和 (<=)
查询 - $gte
和 $lte
语法
db.collectionName.find({<key>:{$gte:<value>},<key>:{$lte:<value>}}) collectionName
集合名词 key
字段 value
值
实例
db.worker.find({age: {$gte: 30, $lte: 50}})
查询age
大于等于 30
并且 age
小于等于 50
的数据
6.MongoDB
等于(==
)
语法
db.collectionName.find({<key>:<value>,<key>:<value>}) collectionName
集合名词 key
字段 value
值
实例
db.worker.find({"age": 30})`
查询age = 30
的数据
7.MongoDB
使用 _id
进行查询
语法
db.collectionName.find({"_id" : ObjectId("value")}) value _id
的值
实例
db.worker.find({"_id" : ObjectId("562af23062d5a57609133974")})
查询_id
是 562af23062d5a57609133974
数据
8.MongoDB 查询某个结果集的数据的条数
语法
db.collectionName.find().count() collectionName
集合名称
实例
db.worker.find().count()
9.MongoDB 查询某个字段的值当中是否包含另一个值
语法
db.collection.find({key:/value/}) collectionName
集合名称 key
字段 value
值
实例
db.worker.find({name:/value/})
查询name
里包含zhang
的数据
10.MongoDB 查询某个字段的值当中是否以另一个值开头
语法
db.collection.find({key:/^value/}) collectionName
集合名称 key
字段 value
值
实例
db.worker.find({name:/^zhang/})
查询条件and和or
查询条件
and和
or
1.MongoDB AND
条件
MongoDB
的 find()
方法可以传入多个键(key)
,每个键(key)
以逗号隔开
语法
db.col.find({key1:value1, key2:value2}).pretty()
实例
db.worker.find({name:’tangcaiye’,age:30})
查询name
是tangcaiye
并且age
是30
的数据
2.MongoDB OR
条件
MongoDB OR 条件语句使用了关键字
$or,语法格式如下:
语法
db.col.find(
{
$or: [
{key1: value1}, {key2:value2}
]
}
)
实例
db.worker.find({$or:[{age = 30},{age = 50}]})
查询age = 30
或者 age = 50
的数据
3.AND
和 OR
联合使用
语法
db.col.find(
{
key1:value1,
key2:value2,
$or: [
{key1: value1},
{key2:value2}
]
}
)
实例
查询 name
是tangcaiye
并且 age
是30
或者 age
是 50
的数据
db.worker.find({name:’tangcaiye’,$or:[{age:30},{age:50}]})
limit和skip方法
MongoDB Limit
与Skip
方法
1.MongoDB Limit()
方法
读取指定数量的数据记录
语法
db.collectionName.find().limit(number) collectionName
集合 number
读取的条数
实例
db.worker.find().limit(3)
查询前3
条数据
2.MongoDB Skip() 方法
跳过指定数量的数据,
skip方法同样接受一个数字参数作为跳过的记录条数。
语法
db.collectionName.find().skip(number) collectionName
集合 number
跳过的条数
实例
db.worker.find().skip(3)
查询3
条以后的数据
3.MongoDB Skip()
方法和Limit()
方法混合使用
注:
通常用这种方式来实现分页功能
语法
db.collectionName.find().limit(number).skip(number)
实例
db.worker.find().sort({age:-1})
查询在4-6
之间的数据
排序
排序
MongoDB sort()方法可以通过参数指定排序的字段,并使用
1 和
-1 来指定排序的方式,其中
1 为升序排列,而
-1是用于降序排列。
语法
db.collectionName.find().sort({KEY:1})
或者 db.collectionName.find().sort({KEY:-1}) collectionName
集合 key
表示字段
实例
db.worker.find().sort({age:1})
查询出并升序排序 {age:1} age
表示按那个字段排序 1
表示升序
db.worker.find().sort({age:-1})
查询出并降序排序 {age:-1} age
表示按那个字段排序 -1
表示降序
mongoose
简介
Mongoose
是MongoDB
的一个对象模型工具,是基于node-mongoldb-native
开发的MongoDB nodes
驱动,可以在异步的
环境下执行。同时它也是针对
MongoDB操作的一个对象模型库,封装了
MongoDB对文档的的一些增删改查等常用方法,让
Node
JS操作
Mongodb数据库变得更加灵活简单。
2.Mongoose
能做什么?
Mongoose,因为封装了对
MongoDB对文档操作的常用处理方法,让
NodeJS操作
Mongodb数据库变得更加容易。
安装
安装使用
mongoose:
安装
mongoose
:
nam 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://127.0.0.1:27017”);
db.connection.on(“error”, function (error) {
console.log(“
数据库连接失败:” + error);
});
db.connection.on(“open”, function () {
console.log(“
数据库连接成功”);
});
集合
MongoDB —— 是一个对象数据库,没有表、行等概念,也没有固定的模式和结构,所有的数据以
Document(以下简称文档
)的形式存储
(Document,就是一个关联数组式的对象,它的内部由属性组成,一个属性对应的值可能是一个数、字符串、日期、数组,甚至是一个嵌套的文档。
),后面我们会学习如何创建文档并插入内容。
在
MongoDB中,多个
Document可以组成
Collection(以下简称集合
),多个集合又可以组成数据库。
我们想要操作
MongoDB数据,那就得先要具备上面所说的包含数据的
“文档
”,文档又是什么意思呢,请看如下介绍。
文档
—— 是
MongoDB的核心概念,是键值对的一个有序集,在
JavaScript里文档被表示成对象。同时它也是
MongoDB中数据的基本单元,非常类似于关系型数据库管理系统中的行,但更具表现力。
集合
—— 由一组文档组成,如果将
MongoDB中的一个文档比喻成关系型数据库中的一行,那么一个集合就相当于一张表。
如果我们要通过
Mongoose去创建一个
“集合
”并对其进行增删改查,该怎么实现呢,到这里我们就要先了解
Schema(数据属性模型
)、
Model、
Entity了。
Schema
Schema —— 一种以文件形式存储的数据库模型骨架,无法直接通往数据库端,也就是说它不具备对数据库的操作能力,仅仅只是数据库模型在程序片段中的一种表现,可以说是数据属性模型
(传统意义的表结构
),又或着是
“集合
”的模型骨架。
//
集合的数据模型定义
,
定义了字段名和字段的类型
,
默认值
var
PersonSchema
= new
mongoose
.Schema
({
name
:
{ type
:String
},
age
:
{ type
:Number
, default
:
0
},
time
:
{ type
:Date
, default
:Date
.
now
},
email
:
{ type
:String
,default
:
’’
}
},{
collection
:
’jihe’
});
基本属性类型有:字符串、日期型、数值型、布尔型
(Boolean)、
null、数组、内嵌文档等。
model
介绍
Model —— 由
Schema构造生成的模型,除了
Schema定义的数据库骨架以外,还具有数据库操作的行为,类似于管理数据库属性、行为的类
代码
//
创建model model(
集合名称,
集合的数据模型)
var
Model
=
db
.
model
(
“jihe”
,
PersonSchema
);
Entity
介绍
Entity ——
由Model
创建的实体,使用save
方法保存数据,Model
和Entity
都有能影响数据库的操作,但Model
比Entity
更具操作性。
代码
//
创建
model model(
集合名称
,
集合的数据模型
)
var
Model
=
db
.
model(
“jihe”,
PersonSchema
);
//
创建一个文档
var
jiheEntity
= new
Model
({
name
:
”tangcaiye”,
age
:
8,
email
:
”
1114602426@qq.com
”
});
console
.
log(
jiheEntity
.
name);
console
.
log(
jiheEntity
.
time);
jiheEntity
.
save(
function (error,doc) {
if (error){
console
.
log(error);
}
else{
console
.
log(doc);
}
});
保存
Model
.
create({
name
:
”zhangsan”,
age
:
”15”},
function (err,doc) {
if (err){
console
.
log(err);
}
else{
console
.
log(doc);
}
});
更改
var
query
= {
name
:
”zhangsan”};
var
update
= {
$set
:{
age
:
100}};
Model
.
find(
query
,
function (err,doc) {
console
.
log(doc);
});
Model
.
update(
query
,
update
,
function (error) {
if (error){
console
.
log(error);
}
else {
console
.
log(
“
更新成功
”);
}
})
请注意如果匹配到多条记录,默认只更新一条,如果要更新匹配到的所有记录的话需要加一个参数
{multi:true}
PersonModel.update(conditions, update,{multi:true},function(error){
if(error) {
console.log(error);
} else {
console.log(‘Update success!’);
}
});
删除数据
var
query
= {
name
:
”zhangsan”};
Model
.
remove(
query
,
function (err) {
if (err){
console
.
log(err);
}
else {
console
.
log(
“
删除成功
”);
}
})
简单查询
属性过滤 find(Conditions,field,callback);
field省略或为
Null,则返回所有属性。
//返回只包含
name、
age两个键的所有记录
Model.find({},{name:1, age:1, _id:0}
,function(err,docs){
//docs
查询结果集
})
说明:我们只需要把显示的属性设置为大于零的数就可以,当然
1是最好理解的,
_id是默认返回,如果不要显示加上
(“_id”:0),但是,对其他不需要显示的属性且不是
_id,
如果设置为
0的话将会抛异常或查询无果。
findOne(
查询单条)
与
find相同,但只返回单个文档,也就说当查询到即一个符合条件的数据时,将停止继续查询,并返回查询结果。
1.
单条数据 findOne(Conditions,callback);
TestModel.findOne({ age: 6}, function (err, doc){
// 查询符合
age等于
6的第一条数据
// doc
是查询结果
});
findOne方法,只返回第一个符合条件的文档数据。
findById(
按ID
单条数据)
与
findOne相同,但它只接收文档的
_id作为参数,返回单个文档。
1.
按ID
单条数据 findById(_id, callback);
PersonModel.findById(person._id, function (err, doc){
//doc
查询结果文档
});
高级查询
//
大于
Model
.
find({
“age”
:{
“$gt”
:
6}},
function (err,doc) {
console
.
log(doc);
});
//
小于
Model
.
find({
“age”
:{
“$lt”
:
9}},
function (err,doc) {
console
.
log(doc);
});
//
不等于
Model
.
find({
“age”
:{
“$ne”
:
8}},
function (err,doc) {
console
.
log(doc);
})
$or(
或者)
$or操作符,可以查询多个键值的任意给定值,只要满足其中一个就可返回,用于存在多个条件判定的情况下使用,如下示例:
Model.find({“$or”:[{“name”:”tangcaiye”},{“age”:6}]},function(error,docs){
//
查询name
为tangcaiye
或age
为6
的全部文档
});
$exists(
是否存在)
$exists操作符,可用于判断某些关键字段是否存在来进行条件查询。如下示例:
Model.find({name: {$exists: true}},function(error,docs){
//查询所有存在
name属性的文档
});
Model.find({email: {$exists: false}},function(error,docs){
//查询所有不存在
email属性的文档
});
游标操作
简介
数据库使用游标返回
find的执行结果。客户端对游标的实现通常能够对最终结果进行有效的控制。可以限制结果的数量,略过部分结果,根据任意键按任意顺序的组合对结果进行各种排序,或者是执行其他操作。
最常用的查询选项就是限制返回结果的数量
(limit函数
)、忽略一点数量的结果
(skip函数
)以及排序
(sort函数
)。所有这些选项一点要在查询被发送到服务器之前指定。
limit函数的基本用法
在查询操作中,有时数据量会很大,这时我们就需要对返回结果的数量进行限制,那么我们就可以使用
limit函数,通过它来限制结果数量。
1.
限制数量:find(Conditions,fields,options,callback);
Model.find({},null,{limit:20},function(err,docs){
console.log(docs);
});
如果匹配的结果不到
20个,则返回匹配数量的结果,也就是说
limit函数指定的是上限而非下限。
skip函数的基本用法
skip函数和
limit类似,都是对返回结果数量进行操作,不同的是
skip函数的功能是略过指定数量的匹配结果,返回余下的查询结果。如下示例:
1.
跳过数量:find(Conditions,fields,options,callback);
Model.find({},null,{skip:4},function(err,docs){
console.log(docs);
});
如果查询结果数量中少于
4个的话,则不会返回任何结果。
sort函数的基本用法
sort函数可以将查询结果数据进行排序操作,该函数的参数是一个或多个键
/值对,键代表要排序的键名,值代表排序的方向,
1是升序,
-1是降序。
1.
结果排序:find(Conditions,fields,options,callback);
Model.find({},null,{sort:{age:-1}},function(err,docs){
//查询所有数据,并按照
age降序顺序返回数据
docs
});
sort函数可根据用户自定义条件有选择性的来进行排序显示数据结果
nodejs(三)下值mangoDB
标签:
原文地址:http://www.cnblogs.com/yuanyingke/p/5982864.html
踩
(
0
)
赞
(
0
)
举报
评论
一句话评论(
0
)
登录后才能评论!
分享档案
更多>
2021年07月29日 (22)
2021年07月28日 (40)
2021年07月27日 (32)
2021年07月26日 (79)
2021年07月23日 (29)
2021年07月22日 (30)
2021年07月21日 (42)
2021年07月20日 (16)
2021年07月19日 (90)
2021年07月16日 (35)
周排行
更多
数据库进阶
2021-07-29
在 Oracle 数据库中执行 SQL 语句遇到特殊字符的转义方式
2021-07-28
Windows Logstash同步 Sqlserver 到Elasticsearch
2021-07-26
mysql数据库(11):恢复数据
2021-07-26
mysql数据库(9):常用查询的例子
2021-07-26
SQLAlchemy 多对多
2021-07-26
ClickHouse的JDBC连接
2021-07-26
Apache HBase 1.7.1 发布,分布式数据库
2021-07-26
数据库常用架构和同步工作原理
2021-07-26
MySQL数据库设计规范(仅供参考)
2021-07-26
友情链接
兰亭集智
国之画
百度统计
站长统计
阿里云
chrome插件
新版天听网
关于我们
-
联系我们
-
留言反馈
© 2014
mamicode.com
版权所有 联系我们:gaon5@hotmail.com
迷上了代码!