Mit*_*ops 4 python datetime date-math mongodb nonetype
我正在使用pymongo将一些日期加载到mongodb中.因为pymongo自动转换为BSON,我正在使用datetime的datetime.strptime函数将输入字符串如"12/04/2013"转换为Date对象,如下所示:
>>> datetime.datetime.strptime("12/04/2013",'%m/%d/%Y')
datetime.datetime(2013, 12, 4, 0, 0)
Run Code Online (Sandbox Code Playgroud)
这样它们就可以使用标准的mongo查询进行搜索.
我的问题是:我还想表示我不知道什么日期的东西是等价的None,所以我可以None对它进行空值测试.我知道我可以把这个日期放在过去或未来的一个try-catch块进入''或者很远None,但这是hacky思考,我宁愿用一个合适的None-type来表示实际上是什么.
如何输入无日期时间?
当您搜索MongoDB时null,缺少的值是等效的.
> db.foo.insert({a: null})
> db.foo.insert({})
db.foo.find({a: null}, {_id: 0})
{ "a" : null }
{ }
Run Code Online (Sandbox Code Playgroud)
它的工作方式与pymongo以下方式相同:
>>> [doc for doc in pymongo.MongoClient().test.foo.find({'a': None}, {'_id': 0})]
[{u'a': None}, {}]
Run Code Online (Sandbox Code Playgroud)
所以None似乎是个不错的选择.它与Python语义一致,它使用dict.get方法的默认行为很好,并且在使用Python驱动程序时直观地映射到MongoDB类型.
| 归档时间: |
|
| 查看次数: |
12235 次 |
| 最近记录: |