我在JS中有一个函数,它从Mongo查询中返回一个值。我希望它返回的是一个数组,其中包含Address字段的单个字符串值。这就是我所拥有的:
mapAddress = function() {
return Demographic.find( {Fname: 'JOHN'}, {Lname: "DOE"}, {Address: 1, _id: 0} ).fetch()[0];
};
查询John Doe并搜索这些名字和姓氏。仅返回数组中的Address字段值。我不确定fetch()是否返回数组。这是怎么做到的?
答案 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()...