Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/410.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/41.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript mongoose、node和异步编码howto_Javascript_Node.js_Mongodb_Asynchronous_Mongoose - Fatal编程技术网

Javascript mongoose、node和异步编码howto

Javascript mongoose、node和异步编码howto,javascript,node.js,mongodb,asynchronous,mongoose,Javascript,Node.js,Mongodb,Asynchronous,Mongoose,好的,我需要打开灯泡。我已经为此挣扎了将近一个星期,只是越来越困惑 我有以下收藏: 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_OrderLi

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

我有以下收藏:

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
有人能给我一些伪代码来解释如何在node和mongoose中做到这一点吗?需要教我如何钓鱼;)

在处理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...
}

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

很容易感到沮丧和困惑,尤其是当你试图一次学习不止一件事情的时候。不要只是四处闲逛,试图让东西发挥作用;从底部开始,一路往上爬。在你完全理解它所依赖的层之前,抵制住进入下一层的诱惑

  • JavaScript
  • Node.js
  • 蒙哥达
  • 猫鼬

  • 您将在第1步学习
    forEach
    技能,在第2步学习异步回调技能,在第3步了解如何
    find
    您的文档,并在第4步将所有内容组合在一起。如果你真的想“学会钓鱼”,没有捷径可走。

    谢谢-我需要清理的不是真正的数据库结构(这是下一项工作)。由于finds({})和forEach的回调,我可以得到所有数据,只是没有按照我期望的顺序。我知道,但是手工使用连接很容易出错。一旦我有时间,我会用一些伪代码逻辑编辑我的答案。顺便说一句,我会使用的
    并行
    函数使其可行。开始在节点中使用异步库,有点帮助;)到了我有工作的时候了。然而,还不能完全确定它为什么会起作用。。。这就是本周的计划!