Node.js 对此,mongo查询应该是什么
下面是我收集的2000多万份文件中的一份文件。 我需要按特定的邮政编码查找文档,在这些文档中,我需要从每个邮政地址(Node.js 对此,mongo查询应该是什么,node.js,mongodb,Node.js,Mongodb,下面是我收集的2000多万份文件中的一份文件。 我需要按特定的邮政编码查找文档,在这些文档中,我需要从每个邮政地址(ADDR,CITY,STATE,zip,APT)中选择一条记录,其年龄值为18岁或更高。 结果也需要限制为最终用户输入的数字 { "_id" : ObjectId("55e86e98f493590878bb45d7"), "RecordID" : 84096380, "FN" : "Michael", "MI" : "", "LN" : "H
ADDR,CITY,STATE,zip,APT
)中选择一条记录,其年龄值为18岁或更高。
结果也需要限制为最终用户输入的数字
{
"_id" : ObjectId("55e86e98f493590878bb45d7"),
"RecordID" : 84096380,
"FN" : "Michael",
"MI" : "",
"LN" : "Horn",
"NAME_PRE" : "MR",
"ADDR" : "160 Yankee Camp Rd",
"CITY" : "Telford",
"ST" : "TN",
"ZIP" : 37690,
"APT" : "",
"Z4" : 2200,
"DPC" : 605,
"CAR_RTE" : "R001",
"WALK_SEQ" : 228,
"LOT" : "0136A",
"FIPS_ST" : 47,
"FIPS_CTY" : 179,
"LATITUDE" : 36.292787,
"LONGITUDE" : -82.568171,
"ADDR_TYP" : 1,
"MSA" : 3660,
"CBSA" : 27740,
"ADDR_LINE" : 3,
"DMA_SUPPR" : "",
"GEO_MATCH" : 1,
"CENS_TRACT" : 61900,
"CENS_BLK_GRP" : 1,
"CENS_BLK" : 17,
"CENS_MED_HOME_VALUE" : 953,
"CENS_MED_HH_INCOME" : 304,
"CRA" : "",
"Z4_TYP" : "S",
"DSF_IND" : 1,
"DPD_IND" : "N",
"PHONE_FLAG" : "Y",
"PHONE" : NumberLong("4237730233"),
"TIME_ZN" : "E",
"GENDER" : "M",
"NEW_TO_BLD" : "",
"SOURCES" : 19,
"BASE_VER_DT" : 20101,
"COMP_ID" : NumberLong("3769001836"),
"IND_ID" : 1,
"INF_HH_RANK" : 1,
"HOME_OWNR_SRC" : "V",
"DOB_YR" : 1975,
"DOB_MON" : 7,
"DOB_DAY" : 10,
"EXACT_AGE" : 39,
"AGE" : 39,
"HH_INCOME" : "D"
}
如果您使用的是mongoose,我们可以通过点(.)运算符链接操作。既然我知道你的所有需求都是有条件的,那么举个例子-
Person.
find({
ZIP: "37690",
ADDR : "",
STATE : "", //so on
AGE: { $gt: 18 }
}).
limit(10).
exec(callback);
更多信息-您需要使用聚合操作 var pipeline = [ { $match: {ZIP: 37690, AGE: {$gt: 18}} }, { $group: { _id: {ADDR: '$ADDR', CITY: '$CITY', STATE: '$STATE', ZIP: '$ZIP', APT: '$APT'}, PHONE: {$first: '$PHONE'} } }, {$limit: 10} ]; db.mycoll.aggregate(pipeline) 变量管道=[ { $match:{ZIP:37690,年龄:{$gt:18} }, { $group:{ _id:{ADDR:'$ADDR',CITY:'$CITY',STATE:'$STATE',ZIP:'$ZIP',APT:'$APT'}, 电话:{$first:'$PHONE'} } }, {$限额:10} ]; db.mycoll.aggregate(管道)
增强上述功能,以在结果中投影所需的任何字段我认为此查询将解决您的问题
Person.find({
ZIP: "37690",
AGE: { $gt: 18 }
}).
limit(50).
exec(callback);
如果您使用的是Mangose,请检查下面的答案更改主题,以解释您在上面的group operation I projected PHONE中寻找的是什么,而不是project(项目)。然后再通过一个$project操作扩展管道。浏览汇总文档。