使用Python Flask检查MongoDB中是否存在条目

时间:2017-10-25 21:36:42

标签: python mongodb pymongo

我有一组“房间”,其中包含一组“用户”。我正在尝试搜索“rooms”集合以查看用户名是否已存在,如果已存在,则更新“user_ip”字段。该集合看起来像:

{
    '_id': ObjectId('59eea13a2728d50a5edefe0z'), 
    'name': 'RH-0', 
    'room_key': 'test123', 
    'users': 
        [{'username': 'Pablo', 'user_ip': '127.0.0.1', 'user_port':0}, 
         {'username': 'Franco', 'user_ip': '127.0.0.1', 'user_port':1}, 
         {'username': 'Valeri', 'user_ip': '127.0.0.1', 'user_port':2}, 
         {'username': 'Sarah', 'user_ip': '127.0.0.1', 'user_port':3}
        ], 
    'workshop_unit': 'wsu0'
}

我当前的解决方案尝试使用房间名称和用户名,但我更愿意只使用“用户名”进行搜索。

def user_exists(roomname, username):
if db.rooms.find({"name": roomname},{'username': username}).count() > 0:
    return 1
else:
    return 0

**注意:在所有馆藏中,用户名将是唯一的。

1 个答案:

答案 0 :(得分:0)

以下Mongo shell代码将完成这项工作:

db.yourColl.update(
    { "users.username": "Valeri" },
    {
        "$set": { "users.$.user_ip": "1.1.0.0" }
    }
)

我非常确定您可以轻松地将其与您的代码相匹配。