簡體   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