ホームページ データベース mysql チュートリアル MongoDB 上級章 動的フィールド設計

MongoDB 上級章 動的フィールド設計

May 17, 2018 pm 02:00 PM
mongodb 分野 デザイン

この記事では主に MongoDB の高度な動的フィールド設計に関する情報を紹介します。この記事の紹介は非常に詳細であり、必要な場合はエディターに従って学習することができます。

この記事は主に MongoDB の動的フィールド設計に関する関連情報を紹介しており、必要な方は詳細な紹介を参照してください。

読者に最適

  • MongoDB開発者

基本的なニーズ

製品: 「ユーザーが必要なものを追加できるようにする優れた機能を既存のフォームに追加しますフィールド「

技術目標バージョン1

動的フォームデータの保存(新しいフィールドはスキーマを変更する必要はありません)」

まず、どのような種類のインデックスがサポートされているかについて話しましょうMongoDB

通常のフィールド Index

// 假如我们的文档长这样
{
 "name": "MongoDB",
 "age": 5
}

// 对age字段建立索引
{
 "age": 1
}
ログイン後にコピー

埋め込みドキュメントインデックス

// 假如我们的文档长成了Object
{
 "person": {
  "age": 2,
  "name": "MongoDB"
 }
}

//对person.age字段建立索引
{
 "person.age": 1
}
ログイン後にコピー

Arrayドキュメントインデックス

// 假如我们的文档长成了数组
{
 "persons": [
  { "name": "MongoDB", age: 5},
  { "name": "MySQL", age: 20}
 ]
}
//对persons.age字段建立索引
{
 "persons.age": 1
}
ログイン後にコピー

上記どれもフィールドを動的に追加する機能を実現できないようです

プログラマーAとプログラマー S は次のような会話をしました:

  • プログラマー A: 「それでは、動的コンテンツを保存するために別のコレクションを追加する必要があります。」

  • プログラマー S: 「しかし、MongoDB の関連クエリに対するサポートは非​​常に弱く、方法はありません」関連する並べ替えを実行するために。後の製品で並べ替えとフィルター機能が追加されると聞いて唖然としていたら、ああ、これを知っていたら MongoDB は必要なかったでしょう。」

- 動的フォーム データを保存するための要件を検討します

  • フィルタリングと並べ替えをサポートする必要があります

  • 技術目標バージョン 2

フィールドを追加し、インデックスも作成できるようにする

解決策


配列を使用して動的フィールドを保存します

  • 説明コレクションを追加してユーザーのフォーム構成を記録します

  • ストレージ構造は次のとおりです:

    //描述collection 
    {
     "_id":"描述id",
     "type":"类型",
     "text": "订单名称",
     "default": "Default Name",
    }
    
    // 原本的表单增加字段form用来存储动态数据
    {
     "_id": "",
     "name": "一个好名字",
     "form":[
     { "_id":"描述_id", "value": 10},
     { "_id":"描述_id", "value": "我的好伙伴"},
     ]
    }
    ログイン後にコピー

注意!!! n 個のフィールドを追加すると、説明コレクションは同時に n 個のドキュメントを追加します

クエリ、並べ替え、フィルターの方法

// 比如用户增加了2个字段
// 现在要对字段1进行排序
db.items.find().sort({"form.0.value":1})
// 对字段2进行筛选
db.items.find({"form.1.value":"我的好伙伴"})
ログイン後にコピー
上の例からわかるように、ユーザーがフィールド値を入力しなくても、すべての Document フォームの n 番目のフィールドが同じ
control

であることを確認するために、null 値を保存する必要があります。これにより、フィールドをフィルタリングして並べ替えてインデックス付けできるようになります

さらに深く掘り下げてください

製品: 「ユーザーがドロップダウン ボックスと複数選択ボックスを追加できるようにする必要があり、フィルターと並べ替えも行う必要があります。」

プログラマー : "Fxxx"

それでは、そのようなデータはどのように保存されるべきでしょうか?


解決策は次のとおりです:


値は 1,2,4,8... のバイナリ形式で保存されます

たとえば、

ユーザーは、複数選択ボックスの場合、1 が保存され、2 番目の項目は 2 で保存され、3 番目の項目は 4 で保存されます


ユーザーが複数選択ボックスの最初の項目 + 3 番目の項目を選択すると、5 が保存され、 (1+4)


MongoDB は、$bitsAllSet、$bitsAnySet、$bitsAllClear、$bitsAnyClear などのビット単位のクエリ演算子関数を含む強力な集計関数を提供します

db.items.aggregate([
 {
  "$match": {
  "$elemMatch": {
   "描述id": "id",
   "value": { $bitsAnySet: [ 1, 5 ] }
  }
 }}
])
ログイン後にコピー

上記で、MongoDB の動的フィールド設計を使用するさまざまな側面が完了しました一種の需要

以上がMongoDB 上級章 動的フィールド設計の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Honor Magic V3 が AI デフォーカス眼保護技術をデビュー: 近視の進行を効果的に軽減 Honor Magic V3 が AI デフォーカス眼保護技術をデビュー: 近視の進行を効果的に軽減 Jul 18, 2024 am 09:27 AM

7月12日のニュースによると、Honor Magic V3シリーズは本日正式にリリースされ、新しいHonor Vision Soothing Oasisアイプロテクションスクリーンを搭載しており、スクリーン自体は高スペックで高品質であると同時に、AIアクティブアイプロテクションの導入も先駆けとなっています。テクノロジー。近視を軽減する伝統的な方法は「近視メガネ」であると報告されています。近視メガネの度数は均等に分散され、視野の中心領域は網膜上に結像されますが、周辺領域は網膜の後ろに結像されます。網膜は像が遅れていると認識し、眼軸方向の成長を促進し、その度数が深くなります。現在、近視の進行を軽減する主な方法の 1 つは、「デフォーカス レンズ」です。中央領域は通常の度数で、周辺領域は光学設計の隔壁によって調整され、周辺領域の像が収まります。網膜の前。

Honor X60i携帯電話は1,399元から販売中:視覚的な四角形OLEDダイレクトスクリーン Honor X60i携帯電話は1,399元から販売中:視覚的な四角形OLEDダイレクトスクリーン Jul 29, 2024 pm 08:25 PM

7月29日のニュースによると、Honor X60i携帯電話は本日正式に発売され、価格は1,399元からとなっている。デザインの面では、Honor X60i 携帯電話は、中央に穴があり、四辺すべてにほぼ境界のない超狭い境界線を備えたストレート スクリーン デザインを採用しており、視野が大幅に広がります。 Honor X60i パラメータ ディスプレイ: 6.7 インチ高解像度ディスプレイ バッテリー: 5000mAh 大容量バッテリー プロセッサー: Dimensity 6080 プロセッサー (TSMC 6nm、2x2.4G A76+6x2G A55) システム: MagicOS8.0 システム その他の機能: 5G 信号強化、スマートカプセル、画面下指紋認証、デュアルMIC、ノイズリダクション、知識Q&A、撮影機能:背面デュアルカメラシステム:5000万画素メインカメラ、200万画素補助レンズ、フロントセルフィーレンズ:800万画素、価格:8GB

新しいスタッキングプロセス! Xiaomi MIX Fold 4は初めて金沙江「三次元特殊形状」バッテリーを搭載 新しいスタッキングプロセス! Xiaomi MIX Fold 4は初めて金沙江「三次元特殊形状」バッテリーを搭載 Jul 20, 2024 am 03:20 AM

7月19日のニュースによると、初の主力折りたたみ新型携帯電話であるXiaomi MIX Fold 4が今夜正式にリリースされ、初めて「三次元特殊形状バッテリー」を搭載したとのこと。レポートによると、Xiaomi MIX Fold4はバッテリー技術で大きな進歩を遂げ、折りたたみ式スクリーン専用に革新的な「三次元特殊形状バッテリー」を設計しました。従来の屏風型端末は、スペース利用効率が低い従来の角形電池を使用することがほとんどでした。この問題を解決するために、Xiaomi は一般的な巻回バッテリーセルを使用せず、新しいラミネートプロセスを開発して新しい形式のバッテリーを作成し、スペース利用率を大幅に改善しました。バッテリー技術の革新 正極シートと負極シートを正確に交互に積み重ね、リチウムイオンの安全な埋め込みを確保するために、Xiaomi は新しい超音波溶接機とラミネート機を開発し、溶接と切断の精度を向上させました。

Xiaomiの100元携帯電話Redmi 14Cのデザイン仕様が明らかに、8月31日に発売される Xiaomiの100元携帯電話Redmi 14Cのデザイン仕様が明らかに、8月31日に発売される Aug 23, 2024 pm 09:31 PM

Xiaomi の Redmi ブランドは、ポートフォリオにもう 1 つの低価格携帯電話、Redmi 14C を追加する準備を進めています。このデバイスはベトナムで8月31日に発売されることが確認されています。しかし、発売に先立ち、ベトナムの小売店を通じて携帯電話の仕様が明らかになった。 Redmi14CR Redmiは新しいシリーズに新しいデザインをもたらすことが多く、Redmi14Cも例外ではありません。この携帯電話の背面には大きな円形のカメラモジュールがあり、前世代のデザインとはまったく異なります。ブルーカラーバージョンでは、グラデーションデザインを採用し、より高級感を演出しています。しかし、Redmi14Cは実際には経済的な携帯電話です。カメラ モジュールは 4 つのリングで構成され、1 つはメインの 50 メガピクセル センサーを収容し、もう 1 つは深度情報用のカメラを収容します。

Honor Magic V3 はドラム式洗濯機の 15 分間の高速洗浄に成功しました。2.5 メートルの防水認証に合格した唯一の折りたたみデバイスです。 Honor Magic V3 はドラム式洗濯機の 15 分間の高速洗浄に成功しました。2.5 メートルの防水認証に合格した唯一の折りたたみデバイスです。 Jul 18, 2024 pm 01:58 PM

7 月 12 日のニュースによると、Honor Magic V3 が本日正式にリリースされ、折りたたみ式携帯電話の厚さが 9.2 mm になりました。特筆すべきは、Honor MagicV3は究極の薄さと軽さを追求しながらも、最先端技術により業界トップクラスの防水性能を実現していること。 10ミクロンの精密充填技術により、この携帯電話はIPX8防水規格に達するだけでなく、湿気の多い環境でもタッチ感度を維持し、ユーザーに安心な体験を提供します。 Honor は記者会見で大胆な実験を行い、MagicV3 をドラム式洗濯機に直接入れて 15 分間の迅速な洗濯テストを行いました。その結果は驚くべきものでした。携帯電話が安全であるだけでなく、その優れた防水機能も実証されました。栄光

世界最小の5G携帯電話が正式リリース:5.05インチの小さな画面と1億個のメインカメラ 世界最小の5G携帯電話が正式リリース:5.05インチの小さな画面と1億個のメインカメラ Jul 19, 2024 pm 09:10 PM

7月19日のメディア報道によると、海外メーカーUnihertz Jelly Maxは、価格199ドルの世界最小の5G携帯電話を発売した。 JellyMax は究極の携帯性を維持しながら、ホールパンチデザインと画面解像度 720x1520 ピクセルの 5.05 インチ HD+LCD ディスプレイを搭載していると報告されています。注目すべきは重量が約180グラムで、iPhone 13 mini(140グラム)よりも軽いことだ。ハードウェア構成 MediaTek Dimensity 7300 高性能プロセッサ 12GBLPDDR5x 高速メモリ 256GBUFS3.1 大容量ストレージ Android14 オペレーティング システム カメラ システム 100MP メイン カメラ 8MP 望遠レンズ 32

449元からZhiyun CQ5スマートフォンジンバル発売:音声制御をサポート 449元からZhiyun CQ5スマートフォンジンバル発売:音声制御をサポート Jul 31, 2024 pm 10:37 PM

7月31日のニュースによると、Zhiyunは本日、携帯電話の撮影と音声制御をサポートするShuiqu CQ5スマートフォンジンバルを発売した。標準バージョンの価格は449元、フォローアップバージョンの価格は599元である。 Shuiqu CQ5 のハイライトの 1 つは、内蔵の高度な音声アシスタント「Xiao Zhi」で、これにより撮影操作がこれまで以上に便利になります。ユーザーは簡単なパスワードを入力するだけで、水平画面モードと垂直画面モードをシームレスに切り替え、録画機能を即座に開始し、音声でシャッターを遠隔制御することもできるため、インスピレーションを捉えるのはもはや手動操作に限定されません。さらに驚くべきことは、音声認識範囲が約 3 メートルに達し、ほとんどの撮影シナリオで正確な応答を保証できることです。 1. Shuiqu CQ5 には伸縮可能な延長ロッドが装備されており、さまざまな撮影角度に柔軟に対応できます。インテリジェントな識別のためのオプションの磁気 AI 追跡モジュール

Xiaomi MIX Fold 4 は初のオールカーボン アーキテクチャ: 耐衝撃性が 300% に向上 Xiaomi MIX Fold 4 は初のオールカーボン アーキテクチャ: 耐衝撃性が 300% に向上 Jul 19, 2024 pm 09:47 PM

7月19日のニュースによると、Xiaomi MIX Fold 4が予定通り今夜到着したとのこと。重さは226gと軽く、片側の薄さは4.59mm、折りたたんだ時の薄さは9.47mmです。レポートによると、Xiaomi MIX Fold 4は初のオールカーボンアーキテクチャであり、大きなカーボンファイバー使用領域のヒンジフローティングプレート、スクリーンライニング、ミッドボードバッテリーコンパートメントはすべてT800H高強度カーボンファイバー素材で作られており、衝撃強度に優れています。 300%増加します。この素材は、6M42アルミニウム合金の13倍、一般アルミニウム合金の25倍となる5500MPaという超高引張強度を誇ります。同じ機械的性能要件の下で、重量は 6M42 アルミニウム合金のわずか 1/15 です。この選択により、デバイスの重量が大幅に軽減されるだけでなく、全体的な強度も大幅に向上します。 1. 先進の「ワンウェイベルト」技術を採用

See all articles