質問編集履歴

1

大幅な質問の改善

2019/03/11 12:59

投稿

moscow3
moscow3

スコア201

test CHANGED
File without changes
test CHANGED
@@ -8,9 +8,19 @@
8
8
 
9
9
 
10
10
 
11
+ ですが、例えば、「全データのscoreをextraづつ上げて更新」というような処理をするにはどうすればよいでしょうか?
12
+
13
+ ```python
14
+
15
+ for d in collection.find():
16
+
17
+ #ここで、d['score']をd['extra']の値を足した値に更新
18
+
19
+ ```
11
20
 
12
21
 
22
+
13
- ですが、例えば、次ようなデータがあったとして、
23
+ DB構造(仮)
14
24
 
15
25
  ```
16
26
 
@@ -22,6 +32,8 @@
22
32
 
23
33
  score:95,
24
34
 
35
+ extra:10,
36
+
25
37
  },
26
38
 
27
39
  {
@@ -29,6 +41,8 @@
29
41
  name:'yamada',
30
42
 
31
43
  score:100,
44
+
45
+ extra:20,
32
46
 
33
47
  },
34
48
 
@@ -38,55 +52,7 @@
38
52
 
39
53
  score:70,
40
54
 
41
- },
42
-
43
- {
44
-
45
- name:'satou',
46
-
47
- score:30,
55
+ extra:5,
48
-
49
- },
50
-
51
- }
52
-
53
- ```
54
-
55
- この中から「nameがtanakaのscoreを10だけアップする」というような処理を行う場合、どのようにすればよいでしょうか?
56
-
57
-
58
-
59
- (find()を使った後にUpdate()をしてもいいですが、何となく無駄な感じがします)
60
-
61
-
62
-
63
- また、「nameがtanakaのscoreを10だけアップするが、scoreが100を超えるようであれば、100にする」というような条件付きの場合のやり方もご教授いただけると嬉しいです。
64
-
65
- ```
66
-
67
- {
68
-
69
- {
70
-
71
- name:'tanaka',
72
-
73
- score:100,
74
-
75
- },
76
-
77
- {
78
-
79
- name:'yamada',
80
-
81
- score:100,
82
-
83
- },
84
-
85
- {
86
-
87
- name:'tanaka',
88
-
89
- score:80,
90
56
 
91
57
  },
92
58
 
@@ -96,8 +62,14 @@
96
62
 
97
63
  score:30,
98
64
 
65
+ extra:90;
66
+
99
67
  },
100
68
 
101
69
  }
102
70
 
103
71
  ```
72
+
73
+
74
+
75
+ また、「scoreが100を超えるようであれば、100にする」というような条件付きの場合のやり方もご教授いただけると嬉しいです。