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
Mongodb 猫鼬';s";独特的;函数是否支持查询中的正则表达式?_Mongodb_Node.js_Distinct_Mongoose - Fatal编程技术网

Mongodb 猫鼬';s";独特的;函数是否支持查询中的正则表达式?

Mongodb 猫鼬';s";独特的;函数是否支持查询中的正则表达式?,mongodb,node.js,distinct,mongoose,Mongodb,Node.js,Distinct,Mongoose,我在node/mongoose项目中有以下几点js。我正在做一个自动完成表格。它与常规的“查找”一起工作很好,但我想做一个“独特的”查找 这就是我目前的处境。我认为问题在于查询的形成方式。有人能帮我解释一下这行的语法吗?或者只是mongoose的“distinct”在可选查询中不支持正则表达式 var text.term = 'johnny'; var regex = new RegExp("^"+text.term); // execute the search Performance.col

我在node/mongoose项目中有以下几点js。我正在做一个自动完成表格。它与常规的“查找”一起工作很好,但我想做一个“独特的”查找

这就是我目前的处境。我认为问题在于查询的形成方式。有人能帮我解释一下这行的语法吗?或者只是mongoose的“distinct”在可选查询中不支持正则表达式

var text.term = 'johnny';
var regex = new RegExp("^"+text.term);
// execute the search
Performance.collection.distinct({lc_actor: regex}, function(err, docs) {
    var names = [];
    for(var nam in docs) {
        // push the lc_actor to the array
    names.push(docs[nam].lc_actor);
    }
    // send back via callback function
    callback(null, names);
});
下面是我的超级详细(-vvvv)猫鼬控制台显示的内容:

Tue Nov 29 13:34:30 [conn1] runQuery called mydb.$cmd { distinct: "performances", query: {}, key: { lc_actor: /^johnny/ } }
Tue Nov 29 13:34:30 [conn1] run command mydb.$cmd { distinct: "performances", query: {}, key: { lc_actor: /^johnny/ } }
Tue Nov 29 13:34:30 [conn1] command mydb.$cmd command: { distinct: "performances", query: {}, key: { lc_actor: /^johnny/ } } ntoreturn:1 reslen:140 526ms

有什么想法吗?

回答我自己的问题。我确实在mongoose的distinct方法中有语法错误。它接受3个参数,我只有2个。正则表达式(或任何条件)的正确语法为:

来自Model.distinct()的Mongoose文档:

Performance.collection.distinct('lc_actor', {lc_actor: regex}, function(err, docs) {
Model.distinct(field, conditions, callback);