sql >> データベース >  >> NoSQL >> MongoDB

MongoDB全文検索

    まだ見つからないので、Mongoを使用したワイルドカード検索/全文検索のヘルプがたくさんあるので、要件の回避策を考え出しました。

    foreach (var doc in batch)
      {
         if (custDictionary.ContainsKey(projectId))
            {
               string concatenatedCustomFields = custFieldsList.Aggregate(string.Empty,
                                (current, custField) =>
                                    current +
                                    (ds.Tables[0].Columns.Contains(custField)
                                        ? (ds.Tables[0].Rows[i][custField].GetType().Name == typeof(DBNull).Name
                                            ? string.Empty
                                            : ((string) ds.Tables[0].Rows[i][custField]).StripHtml())
                                        : string.Empty));
    
                            doc.Add("CustomFieldsConcatenated", concatenatedCustomFields);
            }
        i++;
     }
    

    ドキュメントの各グループのカスタムフィールドのリストを読み、連結されたMongoフィールドを作成し、そのフィールドで正規表現クエリを使用します。

    次に、インデックスに続いて追加されたクエリのパフォーマンスを向上させるために

      _mongoConnect.Database?.GetCollection<BsonDocument>("MyCollectionName")
                    .Indexes.CreateOneAsync(new BsonDocument("CustomFieldsConcatenated", "hashed"), new CreateIndexOptions { Name = "CollectionName_FieldName_Index" });
    


    1. MongoDBでインデックスを再構築する必要があるのはなぜですか?

    2. Pythonを使用してOracleからMongoDBにエクスポートする

    3. MongoDB $ group(mongo遊び場)

    4. MongoDBコレクション内のすべての個別のフィールドのリストをクエリする