如何获取mongoose模型的单个属性?

在阅读The Little MongoDB的书后,我刚刚开始玩mongoose。 我很新,到目前为止,我已经知道如何从mongoose中查询我的集合,并根据它们的属性来查找文档,但是我想知道的是实际上如何仅显示文档中的每个文档的一个属性收集,例如,在一个Express res.send()。 就像一个学习实验一样,如果你愿意的话。

我在CoffeeScript中编写了这段代码:

express = require 'express' app = express() http = require 'http' server = http.createServer app mongoose = require 'mongoose' mongoose.connect 'localhost', 'linkreferrers' # ## Ignore these configurations for now # app.configure -> # app.set 'views', __dirname + '/views' # app.set 'view engine', 'jade' linkSchema = new mongoose.Schema { referer: 'string' } Link = mongoose.model 'Link', linkSchema app.get '/', (req, res) -> # Fetch the HTTP Referer from the visitor's browser, store it in the database, display a list of referers refererdata = req.get 'Referer' if refererdata? link = new Link {referer: refererdata} do link.save Link.find (err, links) -> console.log err if err res.send links server.listen 5000 

这将以下数据发送到用户的浏览器:

 [ { "referer": "http://fiddle.jshell.net/_display/", "_id": "50f0fdcb75d2543b38000001", "__v": 0 }, { "referer": "http://fiddle.jshell.net/_display/", "_id": "50f18b0c95e3182a3a000001", "__v": 0 }, { "referer": "http://fiddle.jshell.net/_display/", "_id": "50f18b58040ac5413a000001", "__v": 0 } ] 

我将如何去只发送每个文档的referer参数到浏览器? 我试过用links.refererreplacelinks ,但是发送undefined 。 有时会抛出一个错误,指出链接没有“引用者”属性。 我已经坚持了几个小时,现在…

find的第二个参数find让您select要包含的字段。 尝试用以下命令replace该行:

  Link.find {}, '-_id referer', (err, links) -> 

_id必须用-前缀明确排除,但其余字段是selectjoin的。