Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 如何在sails mongodb中使用{$text:{$search:search}}?_Node.js_Mongodb_Sails Mongo - Fatal编程技术网

Node.js 如何在sails mongodb中使用{$text:{$search:search}}?

Node.js 如何在sails mongodb中使用{$text:{$search:search}}?,node.js,mongodb,sails-mongo,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"

我有一个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) { .. }
“search”的一个示例值是“\”jim\”,其中搜索词是 {$text:{$search:\'jim\'}


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

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

var musicCourses=await Course.find({subject:{contains:'abc'} }))


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


我不再使用sailsjs,所以我很难检查它是否有效。您能扩展您的答案以显示示例输出和sails配置吗?
const db = sails.getDatastore().manager;
let result = await db.collection("insights").find( { $text: { $search: search } } ).skip(offset).limit(limit).toArray();