5

Django と一緒に MongoDB を使用しようとしています。このガイドに従ってセットアップし、必要なものがすべてインストールされるようにしました。 MongoDB + Django チュートリアル 私の問題は次のとおりです:cities = City.objects.get()私の中で実行しようとするとviews.py、次のエラーが発生します:

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

データベースの 1 つの行は次のようになります。

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

2 に答える 2

7

解決策を見つけました。問題は、使用するコレクションを選択する方法がわからなかったことです。したがって、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"
于 2013-04-24T17:57:23.507 に答える
0

DB 内のすべての都市を取得する場合は、使用する必要があります

cities = City.objects.all()

City.objects.get検索するキーワード引数が必要で、単一のレコードのみを返します。複数見つかった場合は例外を発生させます。

于 2013-04-22T19:19:36.837 に答える