Nodejs 求一个mongoskin 模糊查询的例子

Nodejs 求一个mongoskin 模糊查询的例子

在title中查询包含“公司”的一个结果

db.collection("coll").findOne({'title':????},{title:true},function(err,t){
 console.log(t);
})
5 回复

Node.js 中使用 mongoskin 进行模糊查询的例子

在 MongoDB 的查询中,有时我们需要根据部分匹配条件来查找文档。例如,在一个 title 字段中查找包含特定字符串(如“公司”)的记录。我们可以使用正则表达式来实现这种模糊查询。

示例代码

var mongo = require('mongoskin');
var db = mongo.db("mongodb://localhost:27017/test?auto_reconnect", {native_parser:true});

// 使用 findOne 方法进行模糊查询
db.collection("coll").findOne({ 'title': /公司/ }, function(err, doc) {
    if (err) throw err;
    console.log(doc);
});

解释

  • 引入 mongoskin:首先需要引入 mongoskin 库。

    var mongo = require('mongoskin');
    
  • 连接数据库:使用 mongo.db() 方法连接到 MongoDB 数据库。这里连接的是本地的 MongoDB 实例,并且指定了数据库名称为 test

    var db = mongo.db("mongodb://localhost:27017/test?auto_reconnect", {native_parser:true});
    
  • 执行查询:使用 findOne() 方法查询 coll 集合中 title 字段包含“公司”的第一个文档。这里的查询条件是一个正则表达式 /公司/,它匹配任何包含“公司”这个词的文本。

    db.collection("coll").findOne({ 'title': /公司/ }, function(err, doc) {
        if (err) throw err;
        console.log(doc);
    });
    

通过上述代码,我们可以在 MongoDB 中查询 title 字段中包含“公司”的文档。如果有匹配的结果,将会打印出来;如果没有匹配的文档,则 doc 将会是 null


???换成正则就可以

谢谢 搜了下了找到了

var title= new RegExp("^.*"+str+".*$");
db.collection("coll").findOne({'title':title},{title:true},function(err,t){
 console.log(t);
})

那包含公司或者小偷两个词怎么查询 ~~

为了实现你在 title 字段中查询包含 “公司” 的一个结果,可以使用 MongoDB 的正则表达式来进行模糊查询。下面是使用 mongoskin 库进行模糊查询的示例代码:

var mongo = require('mongoskin');
var db = mongo.db("mongodb://localhost:27017/test?auto_reconnect");

db.collection("coll").findOne({ title: { $regex: /公司.*/, $options: 'i' } }, { title: true }, function (err, t) {
    if (err) throw err;
    console.log(t);
});

代码解释:

  1. 引入 mongoskin:首先引入 mongoskin 库并连接到 MongoDB 数据库。
  2. 定义查询条件:使用 $regex 和正则表达式 /公司.*/ 进行模糊查询,其中 .* 表示匹配任意字符(包括没有字符的情况),$options: 'i' 表示忽略大小写。
  3. 执行查询:调用 findOne 方法查询满足条件的第一条记录,并将结果通过回调函数输出。

这样就可以查询到 title 中包含 “公司” 的第一个文档。如果需要查询所有符合条件的文档,可以使用 find 方法替换 findOne 方法。

回到顶部