所以我的结果中有一个名为“city”的字段……结果被破坏了,有时是一个实际名称,有时是一个数字。以下代码显示所有记录。。。
db.zips.aggregate([{$project : {city:{$substr:["$city",0,1]}}},{$sort : {city : 1}} ])
我需要修改这一行,以便只显示城市名为数字(2、3、4等)的记录…我想我可以使用“$match”,但如何使用?
db.zips.aggregate([{$project : {city:{$substr:["$city",0,1]}}},{$sort : {city : 1}}, {$match:{???what_to_say_here???} ])
如何说“城市是数字时匹配”?
我得到的输出看起来像这样。。。
{
"city" : "A",
"_id" : "04465"
},
{
"city" : "1",
"_id" : "02821"
},
{
"city" : "0",
"_id" : "04689"
}
我试图只显示带有数字字符串的记录…这与一个更大的“家庭作业”问题有关,但我甚至无法进入实际的家庭作业问题,直到我通过这一点。
为什么不使用$regex?
在} 运算符:
$match
中使用^{数字没有单一类型值,因此您需要知道您拥有哪种类型的数字:
或者使用
$or
运算符来匹配所有类型的数字:或者甚至使用
$not
来匹配city
不是字符串的所有文档:已更新
要匹配
city
是数字字符串的所有文档,可以使用正则表达式:简单使用:
这工作对我来说很好!
相关问题 更多 >
编程相关推荐