如何在sails-mongodb中使用{$ text:{$ search:search}}?

时间:2016-09-03 11:13:54

标签: node.js mongodb sails-mongo

我有一个sails-mongodb查询

db('insights').find( { $text: { $search: search} } ).limit(limit).skip(offset).exec(function (err, insights) { ... }

给出错误

{"name":"MongoError","message":"\"$search\" had the wrong type. Expected String, found RegEx","waitedMS":0,"ok":0

等效的Mongodb查询有效。

var col = db.collection('insights');

          col.find( { $text: { $search: search } } ).skip(offset).limit(limit).toArray(function(err, items) { .. }

“搜索”的示例值是“\”jim \“”搜索词所在的位置 {$ text:{$ search:“\”jim \“}

通过sails-mongodb传递$ text:$ search对象的正确方法是什么?

2 个答案:

答案 0 :(得分:1)

下面是一个可以使用“ contains”的示例,可以使用sails-mongo

  

var musicCourses =等待Course.find({主题:{包含:'abc'}   });

答案 1 :(得分:1)

提供的答案不起作用。 Sails-MongoDB 不支持 MongoDB 内置的 MongoDB 搜索结构。您最好使用来自父 Sails 数据库的本机 Mongo 管理器,然后像您在描述中那样使用本机 Mongo 查询。 (我知道您已经继续前进,但以防万一其他人正在寻找相同的东西)。

const db = sails.getDatastore().manager;
let result = await db.collection("insights").find( { $text: { $search: search } } ).skip(offset).limit(limit).toArray();