Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Pymongo$Unset不';我什么也不做_Python_Mongodb_Flask_Pymongo - Fatal编程技术网

Python Pymongo$Unset不';我什么也不做

Python Pymongo$Unset不';我什么也不做,python,mongodb,flask,pymongo,Python,Mongodb,Flask,Pymongo,我使用pymongo和flask将个人拥有的数据库中的台式机的信息放到表中的网页上。很简单。但是我有一个按钮,它应该使用$pull从数据库中删除桌面 mongo文档如下所示: { "_id" : ObjectId("55c4a89a80071a0ef20e4df1"), "Hostname" : "XXXXXXXXX", "BUILD OS" : "WINDOWS 7 ENTERPRISE", "Current User" : "CAMPELK", "Pr

我使用pymongo和flask将个人拥有的数据库中的台式机的信息放到表中的网页上。很简单。但是我有一个按钮,它应该使用$pull从数据库中删除桌面

mongo文档如下所示:

{
    "_id" : ObjectId("55c4a89a80071a0ef20e4df1"),
    "Hostname" : "XXXXXXXXX",
    "BUILD OS" : "WINDOWS 7 ENTERPRISE",
    "Current User" : "CAMPELK",
    "Primary User" : "CAMPELK",
    "Location" : "XXXXX",
    "Model" : "vmware inc. vmware virtual platform",
    "BUILD Version Full" : "5.1.00.00",
    "BUILD Version" : 5.1,
   }
(由于工作场所的规定,我不得不审查一些数据)
桌面模型的名称从下拉菜单表单返回为如下字符串:

@app.route('/contact_desktop', methods=['GET', 'POST'])
def contact2():
    form1= name_search()
    name = form1.name.data
    choices = DI.make_dictionary()
    form2 = ContactFormDesktop()
    models = DI.return_model(name)
    if request.method == 'POST': 
        DI.remove_give_back_desktop(models, form2.choose_desktop.data, name)
        return render_template('thanks.html', thing = "desktop")
remove_give_back_desktop()方法应该删除与表单返回的模型字符串匹配的字段:

def return_model(name):
    models = list()
    for entry in db.names.find({}):
            model = entry["models"]
            models.append(model)
    return models


def remove_give_back_desktop(model1, model2, name):
    for entry in model1:
            if entry == model2:
                    db.desktops.update_one({"Current User":name, "Model": entry},{"$unset":{"Model":""}})
但是,当我单击html页面中的按钮时,什么也没有发生,没有抛出错误,代码运行正常,否则,应该删除的字段仍然存在

当我手动插入名称和模型时,update$unset方法在mongo终端中起作用,那么我的pymongo语法是错误的还是有更深层次的问题


谢谢

功能输入为“model1”和“model2”。您的查询调用“model”,它未定义,因此与任何内容都不匹配,对不起,这是因为试图正确使用空格而造成的输入错误。编辑我的问题,上面的问题仍然存在。同时,您可以触发mongodb的详细日志,查看对db的确切操作。我仍然强烈建议您查看您的输入并进行一些日志记录。这里最可能的解释是查询与任何内容都不匹配。不,您没有发现错误。请尝试以下操作:db.desktops.update_one({“当前用户”:名称,“模型”:条目},{“$unset”:{“模型”:1}})函数输入为“模型1”和“模型2”。您的查询调用“model”,它未定义,因此与任何内容都不匹配,对不起,这是因为试图正确使用空格而造成的输入错误。编辑我的问题,上面的问题仍然存在。同时,您可以触发mongodb的详细日志,查看对db的确切操作。我仍然强烈建议您查看您的输入并进行一些日志记录。这里最可能的解释是查询与任何内容都不匹配。不,您没有发现错误。请尝试以下操作:db.desktops.update_one({“当前用户”:名称,“模型”:条目},{“$unset”:{“模型”:1}})