violet0sea / note

can not open gist, so write here
0 stars 0 forks source link

mongodb #23

Open violet0sea opened 5 years ago

violet0sea commented 5 years ago

mac环境下的使用 1.配置环境变量,网上给出的export PATH=/bin:$PATH,设置环境变量成功使用sudo mongod启动后,打开新的terminal,输入mongo发现命令不存在,即上述方式只有在当前窗口的活动周期内存在,解决方法 修改~/.bash_profile文件 vim ~/.bash_profile

export PATH="/Users/dudulu/software/mongodb/bin:${PATH}"

violet0sea commented 5 years ago

node里如何使用mongodb

  1. 确保mongodb服务开启
  2. 安装mongodb npm install -S mongodb
  3. 在路由文件里引入mongodb,定义需要连接的url,const URL = 'mongodb://localhost:27017/';
  4. 写🌰时使用的koa,由于koa对于异步操作会直接返回404,所以使用async function等待异步操作完成后在返回数据

       apiRouter.get('/mongo/list', async(ctx, next) => {     
            const mongoClient = mongodb.MongoClient;
            const connection = await mongoClient.connect(URL, {
                useNewUrlParser: true
            });
            const dbase = connection.db('test');
            const result = await dbase.collection('data').find({}).toArray();
    
            ctx.response.body = {
                code: 0,
                message: 'succ',
                data: result
            }
            connection.close();
        });
violet0sea commented 5 years ago

使用mongoose

  1. 确保mongodb服务开启
  2. 安装mongoose npm install mongoose
  3. 引入mongoose依赖,并启动连接
    const mongoose = require('mongoose');
    mongoose.connect('mongodb://localhost/test');
    // 教程里使用了connection方法获取数据库实例
    const db = mongoose.connection;
    这里是一个pending connection,只有当连接状态发生变化时才会改变状态,pending to success or error,可以使用相应的监听函数
    db.on('error', () => {
    console.log('connection error!');
    });
    db.once('open', () => {
    console.log('connection success.')
    });
  4. 定义Schema
    const Schema = mongoose.Schema;
    const exampleSchema = new Schema({
    name: String
    });
    const Example = mongoose.model('Example', exampleSchema);
    const data = new Example({name: 'example'});
  5. 查询
    data.find({}, (err, data) => {
    });