Find Jobs
Hire Freelancers

Create query to be used in mongoengine to query results by date in dictfield inside listfield

$10-30 USD

已完成
已发布超过 5 年前

$10-30 USD

货到付款
Hi! This project is about a query to get results by date using mongoengine over mongodb to filter results by month, year and month and age So, I have a model in Mongoengine class Contact([login to view URL]): name = [login to view URL](max_length=255, verbose_name=_(u'Name')) email = [login to view URL](verbose_name=_(u'E-mail')) customs = [login to view URL]([login to view URL]()) In field customs I will a list of dictionaries like that: [login to view URL] = [{'k':'phone','v':'444-444-444'},{'birth_date':[login to view URL](1980,6,1)] I will have a lot of register with differents birth dates, but one date for each person. So I would like to do: 1 - Create a query that I can get all person that has birth day in a specific month 2 - Create a query that I can get any person that borns in a single year 3 - Create a query that I can get all persons that is under 18 year old What I will not accepet, query in mongodb and pymongo. I want a query using mongoengine running over python/Django, compatible with python 2.7 and Django 1.4 Let's game begins!
项目 ID: 18033515

关于此项目

3提案
远程项目
活跃5 年前

想赚点钱吗?

在Freelancer上竞价的好处

设定您的预算和时间范围
为您的工作获得报酬
简要概述您的提案
免费注册和竞标工作
颁发给:
用户头像
Hi. After some research I find that: a) In your example "birth_date" is a [login to view URL] object, but this should be a [login to view URL] object, since MongoDB (BSON) don't have a type for date without time. Trying to store a date object in MongoDB results in an error saying date object cannot be encoded. b) Queries like [login to view URL](customs__birth_date__gte=[login to view URL](2010, 1, 1)) works (honestly I have no idea why this would work but sure it is as I tested). So: [login to view URL]( customs__birth_date__gte=[login to view URL](2010, 1, 1), customs__birth_date__lt=[login to view URL](2011, 1, 1), ) gives you all people with birth date greater than or equal to 20100101 and less than 20110101, which is exactly all people with birth year 2010. The same technique can be used to find out all people whose age is under 18: just filter birth date greater than [current date - 18 years]. So your requests (2) and (3) are fulfilled. c) Your request (1) is harder than it seems. This cannot be done by normal queries, but can be done using aggregations, since aggregation mechanism provides "$month" operator to extract month from a date. I haven't figure out how to do it yet, but it is possible. Please contact me if you want me to do more research and finish this for you. Thanks.
$30 USD 在1天之内
5.0 (1条评论)
1.0
1.0
3威客以平均价$55 USD来参与此工作竞价
用户头像
Hi, It's a great pleasure to see a job post related Django and MongoDB. Which is really rear Though most of the developer uses only relation database like MySql or PostgreSQL i am one of those wo use both relation and noSql. Looking at your query based requirements I hope i can help you here with my experience, Knock me to discusses more Regards
$111 USD 在3天之内
4.9 (17条评论)
4.3
4.3
用户头像
Hi, I'd like to help you out with your project because I could say I understand what you're looking for with this script. if you're interested in my bid, send me a message and we could sort terms. best regards!
$25 USD 在2天之内
4.8 (5条评论)
2.3
2.3

关于客户

BRAZIL的国旗
Rio de Janeiro, Brazil
0.0
0
付款方式已验证
会员自9月 21, 2014起

客户认证

谢谢!我们已通过电子邮件向您发送了索取免费积分的链接。
发送电子邮件时出现问题。请再试一次。
已注册用户 发布工作总数
Freelancer ® is a registered Trademark of Freelancer Technology Pty Limited (ACN 142 189 759)
Copyright © 2024 Freelancer Technology Pty Limited (ACN 142 189 759)
加载预览
授予地理位置权限。
您的登录会话已过期而且您已经登出,请再次登录。