使用mapReduce选择一行中的所有字段
我正在将猫鼬与nodejs一起使用。我正在使用 mapReduce 来获取按字段分组的数据。因此,它作为集合提供给我的只是仅来自数据库每一行的分组字段的键。
我需要从数据库中获取按一个字段分组并根据另一个字段排序的所有字段。例如:我有一个数据库,其中包含前往这些地方的地点和票价的详细信息以及其他一些字段。现在我需要以这样的方式获取数据,即根据按票价排序的地点对数据进行分组。 MapReduce 帮助我得到这个,但我无法得到其他字段。
有没有办法使用mapreduce来获取所有字段,而不是像上面的例子中提到的那样只获取两个字段?
I am using mongoose with nodejs. I am using mapReduce to fetch data grouped by a field.So all it gives me as a collection is the key with the grouping field only from every row of database.
I need to fetch all the fields from the database grouped by a field and sorted on the basis of another field.e.g.: i have a database having details of places and fare for travelling to those places and a few other fields also.Now i need to fetch the data in such a way that i get the data grouped on the basis of places sorted by the fare for them. MapReduce helps me to get that, but i cannot get the other fields.
Is there a way to get all the fields using map reduce, rather than just getting the two fields as mentioned in the above example??
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我必须承认我不确定我完全理解你在问什么。
但也许以下想法之一可以帮助您:
任一)当您迭代 mapReduce 结果时,您可以从 mongodb 获取每个结果的完整文档。这样您就可以访问每个文档中的所有字段,但需要消耗一些网络流量。
或)发送到emit(key, value)的值可以是一个对象。因此,您可以构造一个包含所有所需字段的值对象。只要确保为您的reduce 方法的返回值使用完全相同的对象结构即可。
我尝试用一个(未经测试的)例子来说明。
I must admit I'm not sure I understand completely what you're asking.
But maybe one of the following thoughts helps you:
either) when you iterate over your mapReduce results, you could fetch complete documents from mongodb for each result. That would give you access to all fields in each document for the cost of some network traffic.
or) The value that you send into emit(key, value) can be an object. So you could construct a value object that contains all your desired fields. Just be sure to use the exactly same object structure for your reduce method's return value.
I try to illustrate with an (untested) example.