zoukankan      html  css  js  c++  java
  • mongoose

    var mongoose = require('mongoose');
    mongoose.connect('mongodb://localhost/test');

    var Cat = mongoose.model('Cat', { name: String });

    var kitty = new Cat({ name: 'Zildjian' });
    kitty.save(function (err) {
    if (err) // ...
    console.log('meow');
    });

    var mongoose = require('mongoose');
    mongoose.connect('mongodb://localhost/test');

    var Cat = mongoose.model('Cat', { name: String });

    var kitty = new Cat({ name: 'Zildjian' });
    kitty.save(function (err) {
    if (err) // ...
    console.log('meow');
    });


    var Schema = mongoose.Schema;
    var blogSchema = new Schema({
    title: String,
    author: String,
    body: String,
    comments: [{ body: String, date: Date }],
    date: { type: Date, default: Date.now },
    hidden: Boolean,
    meta: {
    votes: Number,
    favs: Number
    }
    });

    var Schema = mongoose.Schema;
    var blogSchema = new Schema({
    title: String,
    author: String,
    body: String,
    comments: [{ body: String, date: Date }],
    date: { type: Date, default: Date.now },
    hidden: Boolean,
    meta: {
    votes: Number,
    favs: Number
    }
    });
    var mongoose = require('mongoose');
    mongoose.connect('mongodb://localhost/test');
    var Cat=mongoose.model("Cat",json);

    moive.save(function(err) {
    if (err) {
    console.log('保存失败')
    return;
    }
    console.log('meow');
    });

    User.update({_id: oneUser._id}, {
    $set: {name: oneUser.name,password:oneUser.password}
    }, function(err) {
    if(err){
    console.log(err)
    return
    }
    console.log('更新成功')
    });
    User.remove({
    _id: id
    }, function(err) {
    if (err) {
    console.log(err)
    return
    }
    console.log('删除成功')
    });

    Mongoose 模型提供了 find, findOne, 和 findById 方法用于文档查询。

    Model.find

    Model.find(query, fields, options, callback)
    // fields 和 options 都是可选参数

    简单查询

    Model.find({ 'csser.com': 5 }, function (err, docs) { // docs 是查询的结果数组 });

    只查询指定键的结果

    Model.find({}, ['first', 'last'], function (err, docs) {
      // docs 此时只包含文档的部分键值
    })

    Model.findOne

    与 Model.find 相同,但只返回单个文档

    Model.findOne({ age: 5}, function (err, doc){
      // doc 是单个文档
    });

    Model.findById

    与 findOne 相同,但它接收文档的 _id 作为参数,返回单个文档。_id 可以是字符串或 ObjectId 对象。

    Model.findById(obj._id, function (err, doc){
      // doc 是单个文档
    });

    Model.count

    返回符合条件的文档数。

    Model.count(conditions, callback);

    Model.remove

    删除符合条件的文档。

    Model.remove(conditions, callback);

    Model.distinct

    查询符合条件的文档并返回根据键分组的结果。

    Model.distinct(field, conditions, callback);

    Model.where

    当查询比较复杂时,用 where:

    Model
    .where('age').gte(25)
    .where('tags').in(['movie', 'music', 'art'])
    .select('name', 'age', 'tags')
    .skip(20)
    .limit(10)
    .asc('age')
    .slaveOk()
    .hint({ age: 1, name: 1 })
    .run(callback);

    Model.$where

    有时我们需要在 mongodb 中使用 javascript 表达式进行查询,这时可以用 find({$where : javascript}) 方式,$where 是一种快捷方式,并支持链式调用查询。

    Model.$where('this.firstname === this.lastname').exec(callback)

    Model.update

    使用 update 子句更新符合指定条件的文档,更新数据在发送到数据库服务器之前会改变模型的类型。

    var conditions = { name: 'borne' }
      , update = { $inc: { visits: 1 }}
      , options = { multi: true };
    
    Model.update(conditions, update, options, callback)

    注意:为了向后兼容,所有顶级更新键如果不是原子操作命名的,会统一被按 $set 操作处理,例如:

    var query = { name: 'borne' };
    Model.update(query, { name: 'jason borne' }, options, callback)
    
    // 会被这样发送到数据库服务器
    
    Model.update(query, { $set: { name: 'jason borne' }}, options, callback)

    查询 API

    如果不提供回调函数,所有这些方法都返回 Query 对象,它们都可以被再次修改(比如增加选项、键等),直到调用 exec 方法。

    var query = Model.find({});
    
    query.where('field', 5);
    query.limit(5);
    query.skip(100);
    
    query.exec(function (err, docs) {
      // called when the `query.complete` or `query.error` are called
      // internally
    });
  • 相关阅读:
    socket编程中最常用的几个数据类型和转换函数
    windows下给QT可执行文件(exe)一个图标
    fseek函数与ftell函数使用例程
    LINUX C例程1:sscanf的用法
    Linux进程控制——exec函数族
    Linux查看文件编码格式及文件编码转换
    oracle易忘函数用法(1)
    Oracle VARRAY的实际应用简介
    oracle 存储过程的基本语法 及注意事项
    何将ext中的FormPanel中,所有组件都居中放置?
  • 原文地址:https://www.cnblogs.com/jayruan/p/5123333.html
Copyright © 2011-2022 走看看