【问题标题】:How to ignore null values in mongodb insert query如何在mongodb插入查询中忽略空值
【发布时间】:2019-06-25 07:23:14
【问题描述】:

我正在尝试从一个简单的注册表单向 mongodb 数据库中插入一些数据。它包括名字、中间名和姓氏,其中中间名是可选的。现在我只想在用户在表单中提供中间名的情况下将中间名插入数据库。

fname = request.values.get('fname')
mname = request.values.get('mname')
lname = request.values.get('lname')
db.users.insert({'fname':fname, 'mname':mname, 'lname':lname})

我得到这个输出:

id:5d11c378f829d8938bf65e0b
fname:"test"
mname:""
lname:"user"

我想要这个(如果表单中没有提供 mname):

id:5d11c378f829d8938bf65e0b
fname:"test"
lname:"user"

    <form action="/register" method="post">
      First name:<br>
      <input type="text" name="fname" required>
      <br>
       Middle name:<br>
      <input type="text" name="mname">  <!-- optional -->
        <br>
      Last name:<br>
      <input type="text" name="lname" required>
      <br><br>
      <input type="submit" value="Submit">
    </form>
return "Registered successfully!"

【问题讨论】:

    标签: mongodb flask mongodb-query


    【解决方案1】:

    插入前检查空值如何?

    var m = request.values.get(‘mname’);
    mname = (m) ? m : null;
    

    或者你可以尝试插入对象。

    user.fname = request.values.get('fname')
    var m = request.values.get(‘mname’)
    user.lname = request.values.get('lname')
    if (m){
      user.mname = m
    }
    db.users.insert(user)
    

    【讨论】:

    • 感谢您的回答。但是在这里我只想写一个插入查询,例如 db.users.insert({'fname':fname, 'mname':mname, 'lname':lname}) 在这里如果我检查 mname 为 null 我必须更改整个从 db.users.insert({'fname':fname, 'mname':mname, 'lname':lname}) 查询到 db.users.insert({'fname':fname, 'lname':lname}) case mname 为空。
    • 就我而言,我没有插入查询,而是创建了对象并将其插入到数据库中。
    猜你喜欢
    • 2019-08-21
    • 2017-01-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-20
    • 2012-08-22
    • 2015-05-23
    相关资源
    最近更新 更多