4

私はこれを見たばかりです:http://blog.mongodb.org/post/38467892360/mongodb-schema-design-insights-and-tradeoffs-from

話から出てきた1つの提案:何度も複製されるドキュメントでは、フィールド名をできるだけ小さくするようにしてください:

慣例として常に短いフィールド名を使用することにより、コレクションのサイズを減らします。これは、時間の経過とともにメモリを節約するのに役立ちます。

「publicationUrl」ではなく「u」を選択します。何百万もの行について話している場合は理にかなっています。しかし、そこには大きな読みやすさの問題があります。値がURLであることは明らかかもしれませんが、それはどのようなURLですか?

ただし、これはORMで解決できる可能性があります。MongoDbとインターフェイスするORMで、dbの「u」がコードの「publicationUrl」にマップされると言うことができますか?a.uコードのようなものがある場合、それはかなり読みやすさが劣ります。article.uそれほど良くはありません。

(Rubyタグとnode.jsタグは、私がmongoで使用する言語であるため、そこにあります。タグを自由に追加してください。)

4

3 に答える 3

2

この議論によると、Mongooseはゲッターとセッターを使用した仮想フィールド名を許可します。残念ながら、仮想はクエリや、map-reduceなどの他のサーバー側の操作では使用できません。ディスカッションでは、クエリの問題に対処しているように見えるエイリアス用のこのプラグインも提案されていますが、より複雑なサーバー側の操作でも問題が発生する可能性があります。

于 2012-12-31T23:41:24.867 に答える
1

これは、RubyORMMongoidを使用すると簡単に実行できます。これがドキュメントからの直接の例です:

class Band
  include Mongoid::Document
  field :n, as: :name, type: String
end

band = Band.new(name: "Placebo")
band.attributes #=> { "n" => "Placebo" }

criteria = Band.where(name: "Placebo")
criteria.selector #=> { "n" => "Placebo" }

私はかなりの数のプロジェクト(すべて小さなプロジェクトですが)でMongoidを使用しており、Mongoidでの作業を本当に楽しんでいます。ドキュメントは本当に素晴らしいです、そしてパフォーマンスについてのセクションもドキュメントにあります。

于 2013-01-02T05:05:09.920 に答える
0

Doctrine MongoDB ODMを使用すると、フィールドのエイリアスを設定できますが、ゲッターやセッターを含むオブジェクトは読み取り可能な状態を維持できます。

/ ** @String(name = "pUrl")* / private $ publicationUrl;

アノテーションリファレンス— Doctrine MongoDB ODM 1.0.0-BETA2ドキュメント—フィールド

于 2013-01-01T12:10:48.073 に答える