首页 > 解决方案 > 如何在MongoDB中正确按居住地过滤人?

问题描述

我有一个包含 800 多个文档的数据库,例如:

"_id" : ObjectId("5adf3c1544abaca147cdd399"),

"index" : 80,

"guid" : "ff1c8885-80fc-41de-a6e2-5a59ccd206e9",

"isActive" : true,

"balance" : "$2,249.41",

"picture" : "http://placehold.it/32x32",

"age" : 32,

"eyeColor" : "blue",

"name" : "Lenora Hayden",

"gender" : "female",

"company" : "FIREWAX",

"email" : "lenorahayden@firewax.com",

"phone" : "+1 (861) 457-2612",

"address" : "554 Bridge Street, Elbert, New Hampshire, 5327",

"about" : "Laborum id anim in ad officia duis est sunt ipsum cupidatat Lorem. Id non excepteur proident id aliqua ea ipsum enim. Sint velit enim proident dolore eiusmod aliqua velit elit id in deserunt. Sint ut magna et quis commodo aliquip consequat Lorem laboris sunt proident aute duis tempor.\r\n",

"registered" : "2014-03-27T09:37:45 -02:00",

"latitude" : -64.083596,

"longitude" : 13.025292,

"tags" : [
               "tempor",
               "velit",
               "do",
               "esse",
               "sunt",
               "enim",
               "eiusmod"
],

"friends" : [
                {
                        "id" : 0,
                        "name" : "Meadows Allen"
                },
                {
                        "id" : 1,
                        "name" : "Riggs Brown"
                },
                {
                        "id" : 2,
                        "name" : "Kris Fuller"
                }
        ],

"greeting" : "Hello, Lenora Hayden! You have 1 unread messages.",

"favoriteFruit" : "banana"

我需要找到所有住在新罕布什尔州的人,按

db.usersdb.aggregate({$group: {_id: "$address"}}).pretty()

仅在地址过滤。如何找到生活在特定州的人并过滤他们?

标签: javascriptmongodbgrouping

解决方案


要过滤集合的子集,您应该$match在过滤之前添加一个阶段。

$match作为查询您的收藏的条件,结果将在下一阶段处理

在此处阅读有关$match 的更多信息


推荐阅读