• node


    mongod

    安装配置

    Mongodb官网下载最新版本的Mongodb下载地址

    下载msiwindow安装包,可以装到C盘或者D盘目录下

    配置

    由于我是安装在D盘的环境下

    D:Program Files (x86)MongoDBServer3.2in
    

    所以在bin文件夹下找到mongod.exe命令,然后通过管理员执行mongod --dbpath x路径x,路径可以是任何地方,我这里选择在D盘的MongoDB目录下,当然路径不要包含特殊的字符串,比如Program Files (x86)也不行

    mongod --dbpath D:mongodbdatadb
    

    命令

    mongo  进入mongo环境
    show dbs :查看当前的数据库列表
    show collections:查看当前库当中的集合列表
    use 数据库名 : 使用指定的库
    db:查看当前所在的数据库
    db.dropDatabase:删除当前的数据库
    
    
    use 数据库名: 新增数据库
    db.集合名,insert({name:"zxr"}) //新增一个集合里面的文档{name:"zxr"}
    db.score.insert({userName:"xiaozhang"}):的score集合当中增加了一个文档
    mongoimport  --db scoreList --collection score --file E:1924Lession04data --drop
    --db:指定数据库
    --collection:指定集合
    --file:指定导入的文件
    --drop:可省略。如果使用该属性则是覆盖,否则是追加。
    
    删 remove
    db.data.remove({}) : 删除所有文档
    db.data.remove({name:"997"}) : 删除name:"997" 
    db.data.remove({age:{$gte:16}},{justOne:true}):删除年龄大于等于16的符合条件的第一个文档。
    
    
    改 update
    db.data.update({name:"zhangsan"},{age:10})   完整替换 把{name:"zhangsan"}的文档替换成{age:10}的文档
    db.data.update({userName:"王五"},{$set:{sex:"女"}}) :将名字为王五的性别修改为女
    db.data.update({sex:"男"},{$set:{age:18}}):只能修改一条。
    db.data.update({sex:"女"},{$set:{age:16}},{multi:true}):更改多条。
    db.data.update({userName:"二哈"},{$inc:{age:1}}):根据条件,将年龄加1
    
    查 find
    db.集合名.find() : 查找当前库下集合名的文档列表
    db.集合名.count():指定集合文档数量 
    db.集合名.find().count() : 根据条件查找数量
    db.集合名,find({name:"zxr"}) :查找name:zxr的数据
    db.集合名.find({sex:"女"})):查找性别为女的集合。
    db.集合名.find({userName:/常/}):模糊查找。查找名字当中包含常
    db.集合名.find({"score.yuwen":2}):查找语文成绩为2的文档
    db.集合名.find({age:{$gt:12}}):查找年龄大于12
        $gt:大于
        $gte:大于等于
        $lt:小于
        $lte:小于等于
        $ne
    db.集合名.find({age:{$ne:12},sex:"女"}):多条件,年龄不等于12,性别为女
    或
    db.集合名.find({$or:[{sex:"女"},{age:12}]}):查找性别为女,或年龄为12的记录
    db.集合名.find().skip(2):跳指指定的文档数(
    跳过前两行文档)
    db.集合名.find().limit(3):取指定的文档数(取前三行文档)
    db.集合名.find().sort({age:-1}):按照年龄的倒序。1正序,-1倒序
    db.集合名.find().sort({age:-1,"score.yuwen":1}):按照年龄的倒序,如果年龄相同,按照语文的正序
    
    分页
        已知:
            1、pageIndex:指定的页数
            2、count:文档数量
            3、pageSum:总页数      pageSum = Math.ceil(count/pageNum)
            4、pageNum:每页显示的条数
        求:
            每页要显示的内容。
        问:总条数9,每页2条,每一页的内容如何求
            skip = (pageIndex-1)*pageNum;
            1、 db.score.find().sort({age:-1}).skip(0).limit(2)
            2、 db.score.find().sort({age:-1}).skip(2).limit(2)
            3、 db.score.find().sort({age:-1}).skip(4).limit(2)
            4、 db.score.find().sort({age:-1}).skip(6).limit(2)
            4、 db.score.find().sort({age:-1}).skip(8).limit(2)
    

    node 操作数据库

    初始化

    npm init -y
    

    下载mongodb

      npm install mongodb -S
      cnpm install mongodb -S
    

    引入

      const mongodb = require("mongodb");
        const mongoClient = mongodb.MongoClient;// 端,可以连接数据库。从而实现对数据的操作
        mongoClient.connect("mongodb://127.0.0.1:27017",function(err,client){
            client.db();// 指定你要操作的数据库
        })
    

    挂载数据库

    1. 创建一个文件夹 mongo

    2. mongod --dbpath

    3. 挂载将cmd最小化

    4. http://127.0.0.1:27017

      结果:It looks like you are trying to access MongoDB over HTTP on the native driver port.
      

    1.连接数据库

    var MongoClient = require('mongodb').MongoClient;
    //结尾是选择数据库名
    var DB_CONN_STR = 'mongodb://localhost:27017/wscats';
    MongoClient.connect(DB_CONN_STR, function(err, db) {
    console.log("连接成功!");
    });
    

    2.查询数据

    注意查询回来的结果需要toArray来遍历处理

    var MongoClient = require('mongodb').MongoClient;
    var DB_CONN_STR = 'mongodb://localhost:27017/wscats';
    
    MongoClient.connect(DB_CONN_STR, function(err, db) {
    console.log("连接成功!");
    //选中age集合,并用find方法把结果集拿回来进行处理
    db.collection("age").find({title: "cba"}).toArray(function(err, result) {
     if (err) {
       console.log('Error:' + err);
       return;
     }
     console.log(result);
    });
    });
    

    经过测试,读取大于100条的时候会出现报错官网解释,可以尝试用forEach代替

    db.collection('pokemon').find({})
    .forEach(function(item){
       console.log(item)
    })
    

    查询ID

    查询自动生成的ObjectId

    var ObjectId = require('mongodb').ObjectId;
    let _id = ObjectId("5bcae50ed1f2c2f5e4e1a76a");
    db.collection('xxx').find({
     "_id": _id
    }).forEach(function (item) {
     console.log(item)
    })
    

    3.插入数据

    insert函数第一个参数是需要插入的值(可以一个也可以多个),第二个参数是接受一个回调函数,当值插入成功后回返回插入值得一些关键信息,比如_id

    var MongoClient = require('mongodb').MongoClient;
    var DB_CONN_STR = 'mongodb://localhost:27017/wscats';
    
    MongoClient.connect(DB_CONN_STR, function(err, db) {
    console.log("连接成功!");
    	const db = client.db("demo");
    db.collection("age").insert([
     { 
       title: "插入的值A"
     }, {
       title: "插入的值B"
     }
    ], function(err, result) {
     if (err) {
       console.log('Error:' + err);
       return;
     }
     console.log(result)
    })
    });
    

    4.更新数据

    注意如果不加$set就是完全替换原来的那份(没有设置的属性值将会丢失),加上$set则只是更新对应的属性值,其余不做改变

    var MongoClient = require('mongodb').MongoClient;
    var DB_CONN_STR = 'mongodb://localhost:27017/wscats';
    
    MongoClient.connect(DB_CONN_STR, function(err, db) {
    console.log("连接成功!");
    db.collection("age").update({
     "_id": 1
    }, {
     $set: {
       title: "你好,世界",
       skill: "js"
     }
    }, function(err, result) {
     if (err) {
       console.log('Error:' + err);
       return;
     }
     //console.log(result);
    });
    });
    

    5.删除数据

    var MongoClient = require('mongodb').MongoClient;
    var DB_CONN_STR = 'mongodb://localhost:27017/wscats';
    
    MongoClient.connect(DB_CONN_STR, function(err, db) {
    console.log("连接成功!");
    db.collection("age").remove({
     "_id": 1
    }, function(err, result) {
     if (err) {
       console.log('Error:' + err);
       return;
     }
     //console.log(result);
     //关闭数据库
     db.close();
    });
    });
    

    6.关闭数据库

    db.close();
    
  • 相关阅读:
    文件目录T位
    改变文件权限的用户身份
    改变进程打开文件默认权限检查方式
    新建文件的UID和GID
    进程的用户ID
    centos7使用无线wifi连接
    2.8. 创建 NSManagedObject 的子类 (Core Data 应用程序实践指南)
    2.7. 属性的各种设置选项(Core Data 应用程序实践指南)
    2.6. 类型(Core Data 应用程序实践指南)
    2.5. Integer 16 、Integer 32、Integer 64(Core Data 应用程序实践指南)
  • 原文地址:https://www.cnblogs.com/zhaoxinran997/p/12184435.html
Copyright © 2020-2023  润新知