我希望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求值,因为整个调用和解释将比本机编码操作符慢得多。