2017-04-08 151 views
0

得到刪除這是我收集名爲學生數組元素不MongoDB中

{ 
    "_id" : 0, 
    "name" : "aimee Zank", 
    "scores" : [ 
     { 
      "type" : "exam", 
      "score" : 1.46317973670502 
     }, 
     { 
      "type" : "quiz", 
      "score" : 11.7827330995777 
     }, 
     { 
      "type" : "homework", 
      "score" : 6.67617606065462 
     }, 
     { 
      "type" : "homework", 
      "score" : 35.8740349954354 
     } 
    ] 
} 

當我運行此,我能夠通過佈置作業刪除×2個陣列元素:

db.students.update(
    { '_id': 0 }, 
    { $pull: { scores: { type: 'homework' } } }, 
    { multi: true } 
) 

但是,當我我試圖通過實際得分刪除一個數組以及type = Homework, 它不會刪除該數組元素。 任何人都可以請幫助,沒有得到在任何文件,試圖用單引號和雙引號等

db.students.update(
    { '_id': 0 }, 
    { $pull: { scores: { type: 'homework', score: 6.67617606065462 } } }, 
    { multi: true } 
) 

回答

0

好吧,這不是什麼錯誤,我使用IDE RoboMongo。 RoboMongo先生四捨五入

score: 6.676176060654615 

score: 6.67617606065462 

我失去了半天這一點。

2

雖然我不能複製它,它一般不建議浮點數的相等比較。相反,您需要比較它是否超過預期值,並且以一定的合理餘量比預期值低。

db.students.update(
    { '_id': 0 }, 
    { $pull: { scores: { type: 'homework', score: {$gte:6.67617606065461, $lte: 6.67617606065463 }} } }, 
    { multi: true } 
) 
相關問題