学生数据库访问-couchdb

学生数据库访问-couchdb,couchdb,couchdb-futon,Couchdb,Couchdb Futon,我想创建一个学生数据库,其中包含有关学生的详细信息-id、姓名、地址、成绩单、电话等。 我创建了一个这样的结构: { "ssn" : "121-23-1232", "name": "Grace Johnson", "address": [ {"Street Address": "190 Pinehill place", "City": "Belmont", "State": "CA", "ZipCode": "08250" } ], "

我想创建一个学生数据库,其中包含有关学生的详细信息-id、姓名、地址、成绩单、电话等。 我创建了一个这样的结构:

{
 "ssn" : "121-23-1232", 
 "name": "Grace Johnson",
 "address": [
    {"Street Address": "190 Pinehill place", 
    "City": "Belmont",
    "State": "CA",
    "ZipCode": "08250"
    }
    ],
 "phone": "605-123-1111",
 "transcript": [
    {"Math":"B",
    "English":"A",
    "Physics": "B",
    "Psychology": "C",
    "Physical Education": "A"
    }
    ]
 }
function(doc){
  if(doc.address){
    emit([doc.address.city, doc.address.state], doc.name)
  }
}
然而,如果我希望能够接触到居住在某个特定城市的学生,那么这种创作方法正确吗?我该怎么写呢?
还假设我想让所有获得物理A的学生


非常感谢您的帮助。

如果您想输出居住在特定城市的所有学生,您的地图功能可以如下所示:

{
 "ssn" : "121-23-1232", 
 "name": "Grace Johnson",
 "address": [
    {"Street Address": "190 Pinehill place", 
    "City": "Belmont",
    "State": "CA",
    "ZipCode": "08250"
    }
    ],
 "phone": "605-123-1111",
 "transcript": [
    {"Math":"B",
    "English":"A",
    "Physics": "B",
    "Psychology": "C",
    "Physical Education": "A"
    }
    ]
 }
function(doc){
  if(doc.address){
    emit([doc.address.city, doc.address.state], doc.name)
  }
}
这将把住在城市里的所有学生聚集在一起。因此,您可以执行此GET请求来查找居住在特定城市的学生:

GET /<viewUrl?start_key=[Belmont,CA]

GET/你能告诉我为什么当我运行你编写的第一个函数时,我会得到[null,null]作为密钥。它似乎没有返回doc.address.city或doc.address.state的任何内容。我想让所有物理成绩为A的学生-在你给我的解决方案中,我们在哪里检查doc.transcript.Physics='A'的条件?你能告诉我怎么写吗。它可以作为if条件包含在函数(doc)中。谢谢你的帮助。我添加了一个GET请求,你可以通过告诉Coach你想要什么钥匙来获得所有物理A的学生。很抱歉听起来这么无知,但这是我在Couchdb工作的第一周,我有一个作业要完成。如果我使用Futon,我在哪里写GET命令呢?不用担心!我不认为您可以在Futon中指定查询参数,但您可以单击查看页面导航栏右角的灰色箭头——它将带您到该视图的URL,您可以在地址栏中添加参数。