33QacbNL5nyGcARNN1TCdk changeset

Changeset656434343666 (b)
ParentNone (a)
ab
0+{
0+_id: "AssemblyA",
0+type: "Assembly"
0+}
0+
0+Then you might also have:
0+
0+{
0+_id: "ObjectA",
0+"type" : "part"
0+"what": "gadget",
0+usedIn: [
0+        "AssemblyA",
0+        "AssemblyB"
0+        ]
0+}
0+{
0+_id:"ObjectB",
0+"what":"widget",
0+"usedIn": [
0+        "AssemblyA",
0+        "AssembyC"
0+        ]
0+}
0+etc.
0+
0+and
0+{
0+_id:"toolA",
0+"type": "tool"
0+"what":"screwdriver",
0+"usedIn":[
0+        "AssemblyA"
0+        ]
0+}
0+etc.
0+
0+Then, in your map function, (this is pseudocode, I didn't actually test it!)
0+
0+if (type == "Assembly") { emit ([doc._id,'assembly',nil],null); }
0+if (type == "tool" || type == "part") {
0+        forEach (asm in doc.usedIn) {
0+                emit([asm,doc.type,0],null);
0+        }
0+}
0+
0+That will get you
0+['AssemblyA','assembly',nil]
0+['ObjectA','part',0]
0+['ObjectB','part',0]
0+['ToolA','tool',0]
0+
0+If you do a query on startkey=['AssemblyA']&endkey['AssemblyA',{}]
...
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
--- Revision None
+++ Revision 656434343666
@@ -0,0 +1,53 @@
+{
+_id: "AssemblyA",
+type: "Assembly"
+}
+
+Then you might also have:
+
+{
+_id: "ObjectA",
+"type" : "part"
+"what": "gadget",
+usedIn: [
+ "AssemblyA",
+ "AssemblyB"
+ ]
+}
+{
+_id:"ObjectB",
+"what":"widget",
+"usedIn": [
+ "AssemblyA",
+ "AssembyC"
+ ]
+}
+etc.
+
+and
+{
+_id:"toolA",
+"type": "tool"
+"what":"screwdriver",
+"usedIn":[
+ "AssemblyA"
+ ]
+}
+etc.
+
+Then, in your map function, (this is pseudocode, I didn't actually test it!)
+
+if (type == "Assembly") { emit ([doc._id,'assembly',nil],null); }
+if (type == "tool" || type == "part") {
+ forEach (asm in doc.usedIn) {
+ emit([asm,doc.type,0],null);
+ }
+}
+
+That will get you
+['AssemblyA','assembly',nil]
+['ObjectA','part',0]
+['ObjectB','part',0]
+['ToolA','tool',0]
+
+If you do a query on startkey=['AssemblyA']&endkey['AssemblyA',{}]