我是网络编程的新手,最近一直在玩Meteor和MongoDB。
我有一个向mongo发送数据的表单,并使用下面的查询检索了最近输入的值:
database.findOne({}, {sort: {'timeStamp' : -1}, limit:1})
然而,这很酷,我只希望特定变量的值不是整个条目,所以我可以在其他地方使用该变量。
有没有人有专业提示?我应该使用distinct()
吗?
谢谢!
答案 0 :(得分:3)
如果您要从退回的文档中检索字段,可以使用fields
选项指定以下内容:
database.findOne({}, {sort: {'timeStamp' : -1}, limit:1, fields: {'myField': 1, _id: 0})
那将以如下格式检索对象:
{'myField': 'value of myField'}
因此,如果您想直接与之互动,您可以像这样访问它:
var myVar = database.findOne({}, {sort: {'timeStamp' : -1}, limit:1, fields: {'myField': 1, _id: 0}).myField
作为一个更具体的例子,我有一个用户名,名称,_id等的用户数据库,如果我只想将用户的名字存储在另一个变量中,我可以这样做:
> a = Meteor.users.findOne({}, {fields: {name: 1, _id: 0}}).name;
> a
<- "Bob" // returned "Bob"
请注意,如果您要提取特定ID或其他选择器的数据,则需要在选择器中填充该数据:
database.findOne({_id: "myId"}, ...)
有关详细信息,请参阅Meteor Mongo.Collection.find文档。