Mongodb distinct 查询为 .distinct( "state" ,{$where: "this.state.length>2" }) 返回错误 对于空值



我希望state的字符串值大于2个字符。

我的查询是

db.company.distinct("state",{$where:"this.state.length>2"})

显示如下错误,

"errmsg": "exception: TypeError: Cannot read property 'length' of .Null n at _funcs1 (_funcs1:1:40)",

请帮

我得到了答案,db.companies.find({"状态":{$ ne:零},地点:美元"this.state.length> 2"})

这个错误基本上意味着该属性没有定义,当它不存在时在JavaScript代码中引用它会引发错误。

改为使用$exists:

db.company.distinct("state", { "state.2": { "$exists": true } });
在这种情况下,这是一个简单的测试,甚至可以使用"索引"来加快结果。也就是说,如果数组中有一个元素的索引是2 (n-1),那么这个数组中就有超过2个元素。

除非你真的有必要,否则你不应该恢复到JavaScript求值,因为整个调用和解释将比本机编码操作符慢得多。

相关内容

  • 没有找到相关文章