Nodejs对MongoDB模糊查询

  • 精确查询
    {‘name’:’未来警察’}时,精确匹配到一条记录。
  • 模糊查询
    {‘name’:/未来/},匹配到了多条记录。

代码:

  • movieRouter.js
    var express = require('express');
    var router = express.Router();
    var movieDao = require('./Movie');
    
    
    //模糊查询
    router.get('/add', function (req, res, next) {
        var query = {};
        if (req.query.m2) {
            //可以把m2字符串变成正则表达式
            //如果m2是'未'
            //new之后变成了/未/
            query.name = new RegExp(req.query.m2);
            console.log(query.name);
        }
        movieDao.findByName(query.name, function (err, list) {
            if (err) {
                console.log(err);
                return;
            }
            console.log(list);
        })
    });
    
    
    module.exports = router;
    
  • Movie.js
    const mongodb = require('./mongodb');
    const Schema = mongodb.mongoose.Schema;
    
    const MovieSchema = new Schema({
        name: String,
        alias: [String],
        publish: Date,
        create_date: { type: Date, default: Date.now },
        images: {
            coverSmall: String,
            coverBig: String,
        },
        source: [{
            source: String,
            link: String,
            swfLink: String,
            quality: String,
            version: String,
            lang: String,
            subtitle: String,
            create_date: { type: Date, default: Date.now }
        }]
    });
    const Movie = mongodb.mongoose.model('Movie', MovieSchema);
    
    
    const MovieDAO = function () { };
    MovieDAO.prototype.save = function (obj, callback) {
        var instance = new Movie(obj);
        instance.save(function (err) {
            callback(err);
        });
    };
    
    
    MovieDAO.prototype.findByName = function (name, callback) {
        Movie.findOne({ name: name }, function (err, obj) {
            callback(err, obj);
        });
    }
    
    module.exports = new MovieDAO();
    

在这里插入图片描述
在这里插入图片描述

GitHub地址

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值