Как запросить MongoDB с помощью & ldquo; like & rdquo ;?

foreach (var p in model.GetType().GetProperties())
{
   var valueOfDisplay = 
       p.GetCustomAttributesData()
        .Any(a => a.AttributeType.Name == "DisplayNameAttribute") ? 
            p.GetCustomAttribute<DisplayNameAttribute>().DisplayName : 
            p.Name;
}

В этом примере я использовал DisplayName вместо Author, потому что у него есть поле с именем DisplayName, которое будет отображаться со значением.

1266
задан mao 12 March 2019 в 10:51
поделиться

3 ответа

Это должно быть:

db.users.find({"name": /.*m.*/})

или аналогично:

db.users.find({"name": /m/})

Вы ищете что-то, что где-то содержит "m" (оператор SQL '% ' эквивалентен оператору Regexp '. * '), а не то, что "m" привязано к началу строки.

примечание: mongodb использует более мощные регулярные выражения, чем LIKE в sql. С помощью регулярных выражений вы можете создать любой шаблон, который вы придумаете.

Для получения дополнительной информации о регулярных выражениях перейдите по этой ссылке. https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions

1833
ответ дан 19 December 2019 в 20:14
поделиться

Представьте deepakparmar в виде строки, dipak, ответ parmar

db.getCollection('yourdb').find({"name":/^dee/})

ответ deepakparmar

db.getCollection('yourdb').find({"name":/d/})

deepakparmar, ответ dipak

db.getCollection('yourdb').find({"name":/mar$/})

deepakparmar, dipak, parmar

2
ответ дан 19 December 2019 в 20:14
поделиться

Вы бы использовали регулярное выражение для этого в монго.

например: db.users.find ({"name": / ^ m /})

49
ответ дан 19 December 2019 в 20:14
поделиться
Другие вопросы по тегам:

Похожие вопросы: