私はdjangoのmongodbにmongoengineを使用しています。
しかし、.. mongoengine フィールド (StringField など) を使用すると、スキーマを望ましくない方向に構築できます。つまり、それが何であるかを知る前に、キー名を事前に書くことを厳密に主張しています。例えば...
データベースに入力されるキー名がわからない場合...
> for(var i=0; i<10; i++){
... o = {};
... o[i.toString()] = i + 100;
... db.test.save(o)
... }
> db.test.find()
{ "_id" : ObjectId("4ed623aa45c8729573313811"), "0" : 100 }
{ "_id" : ObjectId("4ed623aa45c8729573313812"), "1" : 101 }
{ "_id" : ObjectId("4ed623aa45c8729573313813"), "2" : 102 }
{ "_id" : ObjectId("4ed623aa45c8729573313814"), "3" : 103 }
{ "_id" : ObjectId("4ed623aa45c8729573313815"), "4" : 104 }
{ "_id" : ObjectId("4ed623aa45c8729573313816"), "5" : 105 }
{ "_id" : ObjectId("4ed623aa45c8729573313817"), "6" : 106 }
{ "_id" : ObjectId("4ed623aa45c8729573313818"), "7" : 107 }
{ "_id" : ObjectId("4ed623aa45c8729573313819"), "8" : 108 }
{ "_id" : ObjectId("4ed623aa45c872957331381a"), "9" : 109 }
[添加]
上記でわかるように、キーは互いに大きく異なります..「事前にどのキー名がキーとしてドキュメントに記載されるかわからない」と仮定してください
dcrosta が答えたように.. 事前にフィールドを指定せずに mongoengine を使用する方法を探しています。
[/添加]
どうすればmongoengineを介して同じことを行うことができますか? のようなスキーマ設計を教えてください
class Test(Document):
tag = StringField(db_field='xxxx')
[添加]
「xxxx」がキー名になるかどうかはわかりません。
すみません.. 私は韓国人なので、私の英語はぎこちないです. あなたの知識を教えてください。これを読んでくれてありがとう。
[/添加]