【发布时间】:2018-01-10 07:55:12
【问题描述】:
假设我有一组具有用户名和电子邮件地址的用户。
{ name: 'John Doe', email: 'john@doe.com', level: 5 }
{ name: 'Fred Foo', email: 'fred@foo.com', level: 2 }
{ name: 'Jo Green', email: 'jo@green.com', level: 5 }
{ name: 'Paul Bar', email: 'paul@bar.com', level: 3 }
我想查询这个集合,选择所有用户的名字和级别。在 Mongoose 中,我可以这样做:
User
.find()
.select('name level')
.exec(callback)
这会给我以下信息:
{ name: 'John Doe', level: 5 }
{ name: 'Fred Foo', level: 2 }
{ name: 'Jo Green', level: 5 }
{ name: 'Paul Bar', level: 3 }
但如果用户的级别高于 4,我还想获取他们的电子邮件地址。这会给我以下信息:
{ name: 'John Doe', email: 'john@doe.com', level: 5 }
{ name: 'Fred Foo', level: 2 }
{ name: 'Jo Green', email: 'paul@bar.com', level: 5 }
{ name: 'Paul Bar', level: 3 }
Mongo[ose] 最好的是什么?
【问题讨论】:
-
要么做 2 个查询(一个 > 4,另一个
-
这是我实际尝试做的(非常)简化的版本。在查询之后编写代码来处理它将是一项艰巨的任务。我希望有一种方法可以使用 mapReduce 或聚合管道或类似的东西。
-
那么你到底想做什么?知道这一点会有所帮助。