MongoDB Collections&数据结构

时间:2017-06-29 04:15:00

标签: mongodb mongodb-query pymongo

我刚刚开始使用MongoDB,所以如果这是一个明显或简单的问题我会道歉。

我正在尝试使用以下数据结构存储我的信息:

database: {
   Customers: {
       Date_added_1: {
           {customer 1 info},
           {customer 2 info},
           {customer 3 info}
       }
       Date_added_2: {
           {customer 1 info},
           {customer 2 info}
       }
   }
   Employees: {
       Date_hired_1: {
           {employee 1 info},
           {employee 2 info}
       }
       Date_hired_2: {
           {employee 1 info}
       }
   }
}

我编写的用于将信息输入数据库的代码如下所示:

from pymongo import MongoClient

def addLeadsToDatabase(personCategory, personInformation, date):

    client = MongoClient('localhost', port#)

    db = client.database[personCategory][date]

    db.insert({personInformation})



person_to_add = {'Name':'John Smith', 'Phone':'888-888-8888', 'Email':'example@email.com'}



addLeadsToDatabase('Customers', person_to_add, '06/28/2017')

然而,当浏览数据库时,看起来每个[personCategory] ​​[date]都会被保存为单独的集合。而不是先将数据存储在personCategory集合中,然后再存储在日期子集合中。

因此,当我开始展示收藏品时,#p>在MongoDB shell中输出:

Customers.6/25/2017
Employees.6/25/2017
Customers.6/26/2017
Customers.6/27/2017
Employees.6/27/2017

而不仅仅是:

Customers
Employees

将日期类别存储在每个。

有没有办法按照我描述的方式存储数据,所以每次运行代码并将数据存储在相应的集合中时,它不会创建新的集合?

1 个答案:

答案 0 :(得分:0)

请考虑:

from pymongo import MongoClient

def addLeadsToDatabase(personCategory, personInformation):

client = MongoClient('localhost', port#)

db = client.database[personCategory]
db.insert({personInformation})

person_to_add = {'Name':'John Smith', 'Phone':'888-888-8888', 'Email':'example@email.com', 'Date': '06/28/2017' } //I would suggest you to use new Date()

addLeadsToDatabase('Customers', person_to_add)

要点:

  

保持简单。稍后,您可以按日期过滤,甚至可以按此日期汇总查询。