MongoDB_crud

										MongoDB——crud
/*
    db.<collections>.insert();
        - 向集合中插入一个或多个文档
        - 如果向集合中添加文档的时候,没有指定_id属性,则数据库会自动为文档添加_id属性
            该属性用来作为文档的唯一标识,自己指定了就不会自动添加
        - 在指定id时必须确保其唯一性
    db.<collections>.insertOne()
        - 插入一个对象
    db.<collections>.insertMany()
        - 插入多个对象
        - 使用数组包裹插入的数据,就算插入一个文档也要用数组包裹起来
*/

db.stus.insert({name:"张三",age:18,gender:"男"});
db.stus.insert({name:"李四",age:20,gender:"男"});

db.stus.find();

/*
    查询
        db.collection.find()
            - 默认只会添加一个,可是使用数组来添加多个文档
            - find():用来查询集合中所有符合条件的文档
            - find(),可以接受一个对象作为查询的条件参数
                {},表示查询集合中的所有的文档
                {字段:值},查询字段是指定值的文档
                多个查询条件中间使用,分割
            - find(),返回的是一个数组
        db.collection.findOne()
            - 查询符合条件的第一个文档
            - 返回的是一个文档对象
        db.collection.find({}).count();
            - 统计文档个数
*/

db.stus.insert({_id:"001",name:"樟树",age:19,gender:"男"});
db.stus.find({_id:"001"});
db.stus.find({age:19});
db.stus.findOne({age:19}).name;
db.stus.find({}).count();

/*
    修改
        db.collection.update()
            - 修改文档的属性值
            - 至少需要两个参数
                1.查询到要修改的文档
                2.要修改的属性和属性值
            - 默认只会修改第一个符合条件的文档
            $set:{},在大括号中指定要修改的字段名和值,多个字段之间使用,分隔
            $unset{},删除文档中指定的属性
        db.collection.updateOne()
            - 只修改第一个符合条件的文档
        db.collection.updateMany()
            - 修改所有符合条件的文档
            
*/
db.stus.find({});
db.stus.update({id:"001"},{$set:{
    name:"南辕北辙",
    gender:"女"
}});

db.stus.update({id:"001"},{$unset:{
    id:1
}});

//修改所有age是19的文档的name属性值为王五
db.stus.updateMany({age:19},{
    $set:{
        name:"王五"
    }
});
db.stus.find({});


/*
    删除
        db.collection.remove()
            - 根据条件删除指定的文档
            - 删除符合条件的所有文档(默认)
            - 在条件后面传一个参数true,则只会删除第一个符合条件的文档
            - 如果传递一个空对象作为参数,则会删除集合中的全部文档
        db.collection.drop()
            - 删除集合
        db.dropDatabase()
            - 删除数据库
*/
db.stus.remove({_id:"001"});
db.stus.insert(
    [{name:"大马猴"},{name:"光头强"}]
);
db.stus.update({name:"大马猴"},{$set:{
    age:28
    }});
    
db.stus.update({name:"光头强"},{$set:{
    age:28
}});
db.stus.find({});

db.stus.remove({age:28},true);

------------------------------------------------------------------------------------------------------

                                            mongoose-crud

var mongoose = require("mongoose");
var mongoosePromise = mongoose.connect("mongodb://localhost/mongodb_test");
mongoose.connection.once("open", function () {
    console.log("数据库连接成功");
});

var Schema = mongoose.Schema;

var stuSchema = new Schema({
    name: String,
    age: Number,
    gender: {
        type: String,
        default: "male"
    },
    address: String
});

var stuModel = mongoose.model("students", stuSchema);

/*
* model中的方法
*   - 增加
        *   Model.create(doc(s),[callback])
        *       - 用来创建一个或多个文档并且添加到数据库中
        *       - 参数
        *           doc(s) 可以是一个文档对象,也可以是一个文档对象的数组
        *           callback 操作完成之后执行的回到函数
    - 查询
        *   Model.find()
        *       - 查询所有符合条件的文档
        *       - 查询到的结果会作为回调函数的参数返回(返回的是一个数组)
        *       - 没查到也会返回一个数组
        *   Model.findById()
        *       - 根据文档的id属性查询文档
        *       -
        *   Model.findOne()
        *       - 查询符合条件的第一个文档
        *       - 返回一个具体的文档对象,不返回数组
        *
        *           - 参数
        *               1.查询条件
        *               2.投影(2种方式)
        *               3.{skip: , limit: },选项设置
        *               4.回调函数
     - 修改
        *  Model.update()
        *  Model.updateMany()
        *  Model.updateOne()
        *  Model.replaceOne()
        *   - 用法和MongoDB一样
     - 删除
        *  Model.remove()
        *  Model.deleteOne()
        *  Model.deleteMany()
        *   - 用法和MongoDB一样
        *
     - 统计数量(count)
        * 统计符合条件的文档的数量
        * 会将返回的结果作为回调函数的参数返回
* */


stuModel.count({name: "光头强"}, function (err, result) {
    if (!err) {
        console.log("符合条件的文档的数量:" + result);
    }
});

/*stuModel.remove({name: "翠花"}, function (err) {
    if (!err) {
        console.log("删除成功");
    }
});*/

// stuModel.updateOne({name: "翠花"}, {$set: {age: 18}}, function (err) {
//     if (!err) {
//         console.log("修改成功");
//     }
// });

/*stuModel.find({name: "光头强"}, function (err, docs) {
    if (!err) {
        console.log(docs[0].name);
    }
});*/

// stuModel.findById("62458331d484e578aae81d98", function (err, doc) {
//     if (!err) {
//         console.log(doc);
//     }
// });

/*stuModel.findOne({}, function (err, doc) {
    if (!err) {
        console.log(doc);
    }
});*/

/*stuModel.find({}, null, {skip: 2, limit: 2}, function (err, docs) {
    if (!err) {
        console.log(docs);
    }
});*/

//投影写法1,使用{}
/*stuModel.find({}, {name:1,_id:0},function (err, docs) {
    if (!err) {
        console.log(docs);
    }
});*/

//投影写法2,使用字符串的形式
/*stuModel.find({}, "name age -_id",function (err, docs) {
    if (!err) {
        console.log(docs);
    }
});*/

//不写条件就是查询所有的文档
/*
stuModel.find({}, function (err, docs) {
    if (!err) {
        console.log(docs);
    }
});
*/


/*
var promise = stuModel.create([
    {
        name: "熊大",
        age: 22,
        gender: "female",
        address: "狗熊岭"
    },
    {
        name: "熊二",
        age: 20,
        gender: "female",
        address: "狗熊岭"
    }
], function (err) {
    if (!err) {
        console.log("插入成功");
    }
});*/



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值