我有一个像这样的文件:
{
"_id" : 0,
"name" : "aimee Zank",
"scores" : [
{
"type" : "exam",
"score" : 1.463179736705023
},
{
"type" : "quiz",
"score" : 11.78273309957772
},
{
"type" : "homework",
"score" : 6.676176060654615
},
{
"type" : "homework",
"score" : 35.8740349954354
}
]
}
在该文档中,我想删除类型为家庭作业得分最低的分数。首先,我正在尝试在mongo shell上执行此操作,因此我手动设置了值。
db.students.update({ _id:0}, {$unset: {"scores.score":6.676176060654615} })
该查询无效,所以我尝试在Google上搜索,我在这里发现了一个关于从数组中删除对象的问题,我尝试了另一个查询:
db.students.update({ _id:0 }, { $unset:
{ "scores": {
"homework": 6.676176060654615 } } }, false, true);
第二个查询有效,但不是我预期的,因为结果是
{ "_id" : 0, "name" : "aimee Zank" }
要检查类型作业的最低值是否存在,我会在此查询中找到:
db.students.find({"scores.score":6.676176060654615}).pretty();
答案 0 :(得分:1)
如果您只想删除/提取score = 6.676176060654615
,则只需使用以下查询:
db.collection.update({"_id":0},{"$pull":{"scores":{score: 6.676176060654615}}})
如果您想找到最小值并将其从收藏中删除。你需要这样做是两个步骤。有关详细信息refer this