Она имеет следующую схему:
Код: Выделить всё
_id: objectId,
sourceName: string,
content: document
Код: Выделить всё
_id: ObjectId('66c63a62a9fa7c172aea24f8')
sourceName: "Foo-1"
content: {opName: "Django", opId: 3, accounts: ["sample1", "joe@google.com"]}
_id: ObjectId('66c63a62a9fa7c172aea24f9')
sourceName: "Foo-2"
content: {magazine: "Foo for beginners", author: "Joe Blogs"}
В веб-API у меня есть конечная точка поиска, которую я хочу найти. запросите MongoDB, и именно здесь появляется этот пост. Я не могу найти способ запросить поле содержимого, чтобы определить, содержит ли оно поисковый запрос. Меня не волнует, какой ключ/свойство имеет соответствующее значение. Меня волнует только то, встречается ли поисковый запрос где-нибудь в контенте.
Я пробовал использовать метод регулярного выражения:
Код: Выделить всё
// request.Term = "Joe"
// _foo = mongoDbService.Database?.GetCollection("foo");
var regex = new Regex(Regex.Escape(request.Term), RegexOptions.IgnoreCase);
var filter = Builders.Filter.Regex(r => r.Content, new BsonRegularExpression(regex));
await _foo.Find(filter).ToListAsync()
Класс C# для Foo:
Код: Выделить всё
[BsonIgnoreExtraElements]
public class Foo
{
[BsonId]
[BsonRepresentation(BsonType.ObjectId)]
public string Id { get; set; }
[BsonElement("sourceName")]
public string Source { get; set; }
[BsonElement("content")]
public BsonDocument Content { get; set; }
}
Подробнее здесь: https://stackoverflow.com/questions/792 ... in-content
Мобильная версия