我在构建数据时遇到了一些困难,因此我可以从Meteor的反应中受益。主要是嵌套对象数组会使查询变得棘手。
我试图将这些数据投射到的三个主要观点是
目前我有一个像这样的订单对象的流星集合:
Order {
table: "1",
waiter: "neil",
note: "note from kitchen",
meals: [
{
seat: "1",
items: [ {n: "potato", category: "fryer", started: false },
{n: "water", category: "drink" }
]
},
{
seat: "2",
items: [ {n: "water", category: "drink" } ]
},
]
}
有没有办法在嵌套数组中查询并应用一些投影,还是需要查看完全不同的数据模型?
答案 0 :(得分:0)
假设您正在为一家餐馆构建此应用程序,那么在任何给定时间都不应该有很多活动订单 - 大概您没有数千张桌子。即使您希望在订购后将订单保留在数据库中,也可以添加一个字段active
来分隔当前的订单。
然后您的查询很简单:activeOrders = Orders.find({active: true}).fetch()
。 fetch
返回一个数组,你可以为每个视图循环几次,使用嵌套的if和for循环来挖掘子对象。另请参见下划线的_.pluck
。您不需要使用一些复杂的Mongo查询来完成所有操作,实际上,如果您查询一次并且需要多次处理结果,您的应用程序将运行得更快。