sql >> Databasteknik >  >> NoSQL >> MongoDB

MongoDB fulltextsökning

Eftersom jag inte har hittat mycket hjälp med jokerteckensökning/fulltextsökning med Mongo, har jag kommit på en lösning för mina krav.

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++;
 }

Jag läser listan med anpassade fält för varje grupp av dokument, skapar sedan ett sammanfogat Mongo-fält och använder sedan Regex-frågan på det fältet.

Sedan för att förbättra prestandan för frågan som läggs till följande index

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


  1. Hur ställer jag in mongo db dbpath på Windows 7?

  2. Mongodb - $grupp i en $grupp (med 'nyckel')

  3. Hämta och lägg till/uppdatera inbäddat/kapslat MongoDB-dokument på flera nivåer med C#

  4. MongoError:det finns inga autentiserade användare