mongoose的基础用法

原创 2017年10月06日 21:53:49

下面是根据官网文档quick start的范例敲了一遍代码,然后附加一些解释

//首先npm下载mongoose并且保证mongodb已经下载,服务器已经运行
//接下来是获取mongoose模块
var mongoose = require('mongoose');
mongoose.connect('mongodb://localhost:28001/test');
var db = mongoose.connection;
db.on('error', console.error.bind(console, 'connection error'));

//如果看到控制台的信息说明我们连接成功并且打开了数据库
db.once('open', function () {
  console.log('mongoose is open!')
});

//Schema是mongoose的数据格式的设置,一切基于Schema. 
//这里设置了一个数据为string的name 
var kittySchema = mongoose.Schema({
  name: String
});

//我们还能为此数据库设置回调函数
kittySchema.methods.speak = function () {
  var greeting = this.name
    ? 'Meow name is ' + this.name
    : 'I dont have name';
  console.log(greeting);
}

//这里的Kitten在mongoDB里面是一个document的类
//而括号里面的kitten是一个集合collection
//有趣的是括号里的kitten是单数。
//但是存储到数据库里面的collection会自动变成复数kittens.
//如果你的代码里面写的集合名字是person,那么数据库里面名字则是people
//这些你可以在下面的客户端展示里面看到 
//这只能是在methods后面设置
var Kitten = mongoose.model('kitten', kittySchema);

//设置一条叫fluffy的数据,这是Kitten document 类的一个实例。
var fluffy = new Kitten({ name: 'fluffy' });

//保存此数据,并且保存成功后触发回调函数
fluffy.save(function (err, fluffy) {
  if (err) return console.log(err);
  fluffy.speak();
});

//可以通过正则表达式找到此数据并且触发回调函数
Kitten.find({ name: /^fluff/ }, function (err, kittens) {
  if (err) return console.log(err);
  console.log(kittens);
  console.log(kittens[0].name);
})

我们先注释掉Kitten.find这个函数, 看下控制台的结果:
这里写图片描述

这里显示open()已经废弃,可以在新版本用openUri取代

接下来我们注释掉fluffy.save函数,然后看看查找结果,
我们找到了这条数据,此数据是以数组形式存在的,所以要得到里面的值的话,要用访问数组的方式来。

这里写图片描述

我们用mongoDB客户端来看下里面的数据长什么样,这里用的是Robo 3T

这里写图片描述

这里看到 :

  • test是一个db
  • kittens 是一个集合
  • fluffy是一条document (客户端中未显示)
版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

Mongoose学习参考文档——基础篇

Mongoose学习参考文档 前言:本学习参考文档仅供参考,如有问题,师请雅正 一、快速通道 1.1 名词解释 Schema : 一种以文件形式存储的数据库模型骨架,不...

mongoose 增删改查 基础篇

###1.1 名词解释 Schema(模式,架构) : 一种以文件形式存储的数据库模型骨架,不具备数据库的操作能力 Mode(模型) : 由Schema发布生成的模型,具有抽象属性和行为的数...

Mongoose学习参考文档——基础篇

【本文为转载文章】一、快速通道1.1 名词解释Schema : 一种以文件形式存储的数据库模型骨架,不具备数据库的操作能力Model : 由Schema发布生成的模型,具有抽象属性和行为的数...

分针网—每日分享:安装使用Mongoose配合Node.js操作MongoDB的基础教程

这篇文章主要介绍了安装使用Mongoose来让Node.js操作MongoDB的基础教程,前端js+后端node+js操作MongoDB正是所谓最流行的一种JavaScript全栈开发方案,需要的朋友...

jquery的基础用法大全

  • 2011-10-19 10:11
  • 864KB
  • 下载

js基础用法全集.txt

Apache Pig的一些基础概念及用法总结3(转)

(18)LOAD数据时,如何一次LOAD多个目录下的数据 例如,我要LOAD两个HDFS目录下的数据:/abc/2010 和 /abc/2011,则我们可以这样写LOAD语句: ...

Android基础学习笔记之-ListView进阶用法(item圆角效果实现)

今天简单用缓存优化方式实现了listview的功能,下面让我们实现一下上篇文章留下来的改进方案:     1).实现item布局的圆角效果     2).对listview的item进行监...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)