如何拉出嵌套文档

问题描述

参考这个Question,现在我想从dinner删除Random Name 2,我该怎么做: 这是我尝试过的:

din_val = data[0]
condition = {
    "username" : session['user']["username"],f"likings.{din_val}" : {
        "$exists" : True
    }
}
update_value = {
    "$pull" : {
        f"likings.$" : din_val
    }
}
response = mongo.db.appname.update(condition,update_value)

但我收到的错误
pymongo.errors.WriteError: Cannot apply $pull to a non-array value,full error: {'index': 0,'code': 2,'errmsg': 'Cannot apply $pull to a non-array value'}

解决方法

演示 - https://mongoplayground.net/p/uYexli31rsc

https://docs.mongodb.com/manual/reference/operator/update/pull/

db.collection.update(
{ "name": "Random Name 2" },{ $pull: { "likings": { dinner: { $exists: true } } }
})

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...