使用Meteor在MongoDB中返回具有单个字符串值的数组

时间:2016-01-04 15:38:41

标签: javascript mongodb meteor

我在JS中有一个函数,它从Mongo查询中返回一个值。我希望它返回的是一个数组,其中包含Address字段的单个字符串值。这就是我所拥有的:

mapAddress = function() {
  return Demographic.find( {Fname: 'JOHN'}, {Lname: "DOE"}, {Address: 1, _id: 0} ).fetch()[0];
};

查询John Doe并搜索这些名字和姓氏。仅返回数组中的Address字段值。我不确定fetch()是否返回数组。这是怎么做到的?

2 个答案:

答案 0 :(得分:1)

要获得所需的结果,请使用 map() 游标上的 find() 方法返回一个数组。我想你想要一个结果,例如:

var mapAddressArray = ["123 ABC Apartments"];

您甚至可以在不使用 field 说明符的情况下完成此操作:

mapAddress = function() {
    return Demographic.find({ 
        "Fname": "JOHN", "Lname": "DOE" 
    }).map(function (a){ return a.Address; });
};

答案 1 :(得分:0)

fetch()会返回一个数组,如果没有文档匹配,可能为空。

这似乎是你想要的:

mapAddress = function() {
  return Demographic.find( {Fname: 'JOHN', Lname: "DOE", Address: 1, _id: 0} ).fetch()[0].Address;
};

虽然如果没有匹配的文档,这段代码会引发错误。您可能想要检查一下。

此外,您不需要搜索所有字段,如果您有id,那就足够了。所以这是一个更好的查询:

Demographic.find({_id: 0}).fetch()...