node连接mongodb查找数据

node连接mongodb查找数据

model/user.js

const mongodb = require('mongoose')

const Schema = mongodb.Schema;

const UserModel = new Schema({
  name: String,
  id: String,
  tel: String,
  hobby: String,
  updateDate: String,
})

const Model = mongodb.model('UserModal', UserModel, 'user');
module.exports = Model
service\user.js
const get = async (params) => {
  const data = await Model.find();
  return data
}

find() 查询集合中所有的内容并批量返回

在这里插入图片描述

const get = async (params) => {
  const data = await Model.find({}, {
    "_id": 0,
    "__v": 0
  });
  return data
}

find({},{}), 第二个参数键值设置0是剔除不需要返回的键,第二个参数如果设置1是指定需要返回的。

{
    "_id": 0,
    "__v": 0
  }

在这里插入图片描述

const get = async (params) => {
  const data = await Model.find({}, {
    "name": 1,
    id: 1,
    "hobby": 1
  });
  return data
}

在这里插入图片描述

example

index.js

const {
  server
} = require('./server/index')

const {
  connectDB
} = require("./db/index.js")

const User = require("./controller/user")

const Url = require('node:url');

// 连接mongodb数据库
connectDB().then(res => {})

// 监听请求
server.on('request', async function (req, res) {

  const {
    method,
    url,
  } = req
  const {
    pathname,
  } = Url.parse(url)

  if (method === 'GET') {
    if (pathname === '/user') {
      User.get(req, res)
    }
  } else if (method === 'POST') {

    if (pathname === '/user') {

      User.bitchAdd(req, res)
    }
  } else if (method === 'DELETE') {

  } else if (method === 'PUT') {

  }

})
server.listen(3000, "localhost", () => {
  // console.log('listen');
})

service\user.js

const Model = require("../model/user")

const get = async (params) => {
  const data = await Model.find(params, {
    "name": 1,
    id: 1,
    "hobby": 1,
    "_id": 0,
  });
  return data
}

const add = async (params) => {

  // 判断数据是否已存在,存在不可添加
  const flag = Model.find()

  const data = await Model.insertMany(params);
  console.log('data', data);
  let res = {}
  if (data.length) {
    res = {
      code: 0,
      data: null,
      msg: 'success'
    }
  } else {
    res = {
      code: 1001,
      data: null,
      msg: 'fail'
    }
  }

  return res
}


const del = async (params) => {
  // 找到需要删除的数据_id
  let idList = [];
  // 查找集合中的数据(user)
  const data = await Model.find({
    name: '木子'
  });
  let res;
  if (data.length) {
    idList = data.map(v => v._id)
    res = await Model.deleteMany({
      _id: {
        $in: idList || []
      }
    });
  }
  if (res.deletedCount > 0) {

  }
}

const update = async (params) => {
  const data = await Model.find();
  return data
}

module.exports = {
  get,
  add,
  del,
  update
}

controller\user.js

const querystring = require('node:querystring');
const url = require('node:url');
const Service = require("../service/user")

const get = async (request, response) => {

  const {
    pathname,
    query
  } = url.parse(request.url, true)
  console.log('query', query);
  const res = await Service.get(query);

  console.log();
  response.end(JSON.stringify({
    code: 0,
    data: {
      lis: res,
      query: query
    }
  }))

}

const add = () => {

}

const bitchAdd = (request, response) => {
  let params;
  request.on('data', function (chunk) {
    params = chunk
    console.log('chunk', params);
  })
  request.on('end', async function () {
    console.log('params', params.toString());
    console.log('处理后params', );
    const item = querystring.parse(params.toString())

    const res = await Service.add(item)
    response.end(JSON.stringify(res))
  })
}

const del = () => {

}

const bitchDelete = () => {

}

module.exports = {
  get,
  add,
  bitchAdd,
  del,
  bitchDelete
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值