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);
});
代码解释:
- 引入 mongoskin:首先引入 mongoskin 库并连接到 MongoDB 数据库。
- 定义查询条件:使用
$regex
和正则表达式/公司.*/
进行模糊查询,其中.*
表示匹配任意字符(包括没有字符的情况),$options: 'i'
表示忽略大小写。 - 执行查询:调用
findOne
方法查询满足条件的第一条记录,并将结果通过回调函数输出。
这样就可以查询到 title
中包含 “公司” 的第一个文档。如果需要查询所有符合条件的文档,可以使用 find
方法替换 findOne
方法。