繁体   English   中英

Django + MongoDB

[英]Django + MongoDB

我试图将MongoDB与Django一起使用。 我已按照本指南进行设置,以便安装所有必要的东西。 MongoDB + Django教程我的问题如下:当我在views.py尝试运行cities = City.objects.get() ,我收到以下错误:

DoesNotExist at /GetAllCities/
        City matching query does not exist.

我的MongoDB看起来像这样

Databasename = "exjobb"
Collectioname = "cities"`

它包含30,000行数据,它适用于我的Rails和PHP应用程序。

我的模型类看起来像这样

    from django.db import models
    from django.core.urlresolvers import reverse
    from djangotoolbox.fields import ListField, EmbeddedModelField

    # Create your models here.
    class City(models.Model):
        city = models.TextField()
        loc = models.TextField()
        population = models.IntegerField()
        state = models.TextField()
        _id = models.IntegerField()

        def __unicode__(self):
            return self.city

数据库中的一行看起来像这样

{
     "city" : "ACMAR",
     "loc" : [
        -86.51557,
        33.584132
     ],
     "population" : 6055,
     "state" : "AL",
     "_id" : "35004"
}

我找到了解决方案。 问题是我不知道如何选择使用哪个集合。 所以Django创建了一个名为“myAppName_cities”的新集合。

要告诉django使用哪个集合,只需添加一个这样的元类。

class City(models.Model):
    city = models.TextField()
    loc = models.TextField()
    population = models.IntegerField()
    state = models.TextField()
        #Specify collection in the MongoMetaclass
    class MongoMeta:
        db_table = "cities"

如果你想获得数据库中的所有城市,你应该使用

cities = City.objects.all()

City.objects.get需要一个关键字参数来搜索并且只返回一条记录。 如果发现异常,则引发异常。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM