0

好的,我需要打开灯泡。我已经为此苦苦挣扎了将近一个星期,而且越来越困惑。

我有这些收藏:

Customers
Orders (linked to Customer by Customer_id)
OrderLines (linked to Order by Order_id)
Salesreps (linked to Customer by Customer_id)

我没有任何嵌入式文档。

我想要做的是获取包含以下内容的数据字符串:

Customer_1

Order#1:First_OrderLine_of_Order_Number
Order#n:First_OrderLine_of_Order_Number

SalesRep_of_Customer_Name

...

Customer_n

Order#1:First_OrderLine_of_Order_Number
Order#n:First_OrderLine_of_Order_Number

SalesRep_of_Customer_Name

有人可以给我伪代码来解释如何在节点和猫鼬中做到这一点吗?我需要学习如何钓鱼;)

4

2 回答 2

2

很容易感到沮丧和困惑,尤其是当您尝试一次学习不止一件事时。不要只是试图让东西正常工作;从底部开始,一路向上。在您完全理解它所依赖的层之前,请抵制继续前进到下一层的诱惑。

  1. JavaScript
  2. 节点.js
  3. MongoDB
  4. 猫鼬

您将forEach在第 1 步中学习您的技能,在第 2 步中学习您的异步回调技巧,在第 3 步中了解如何处理find您的文档,并在第 4 步中将它们组合在一起。如果您真的想要,没有捷径可走'学会钓鱼'。

于 2012-08-04T04:43:05.723 回答
0

在处理 NoSQL(该技术的一个非常糟糕的名称)时,您必须以不同的方式设置数据集。

在 mongo 中你没有连接,所以你必须重构你的数据。尽可能考虑嵌入文档(例如带有嵌入订单行的订单)。

我会使用这样的东西:

Order: {
  _id: ObjectId
, user: DBRef // (or ObjectId)
, lines: [
    {foo: "bar"}
  , ...
  ]
}

User: {
  _id: ObjectId
, salesref: { _id: ObjectId, name: "James Brown"}
, more_data ...
}

SalesRef: {
  _id: ObjectId
, more_data...
}

保持对引用集合的最小引用,您甚至可以user: {name: "Max Power", sales: "James Brown"}在订单中添加一个,但请记住,在文档修改/插入期间您需要手动保持一致。

于 2012-08-03T14:32:21.623 回答