Как отфильтровать монго-документ, который содержит некоторую строку в одном из своих свойств? - PullRequest
0 голосов
/ 12 октября 2018

У меня есть пользователи модели, которые содержат некоторую базовую информацию о пользователях.Я просто добавляю функцию поиска для моего приложения и хочу найти пользователей, которые содержат критерий поиска в свойстве displayName?

модель пользователя

[
    {
        "_id" : ObjectId("5bbda46a433ced65ac7c4699"),
        "email" : "henoktes72@gmail.com",
        "displayName" : "Henok Tesfaye",
        "userId" : "5bbda46a433ced65ac7c4698",
        "reputationNumber" : 0,
        "questions" : [ 
            "5bbf135d7883513e3839a34c"
        ],
        "answers" : []
    },
    {
        "_id" : ObjectId("5bbdb84a7da23035740bf056"),
        "email" : "mezi@gmail.com",
        "displayName" : "Mezi Villager",
        "userId" : "5bbdb84a7da23035740bf055",
        "reputationNumber" : 5,
        "questions" : [ 
            "5bbf1f137883513e3839a34f"
        ],
        "answers" : [ 
            "5bbf6933e564763770d81828"
        ]
    }
]

Если поисковым термином является Хенок,вывод должен быть

[
    {
        "_id" : ObjectId("5bbda46a433ced65ac7c4699"),
        "email" : "henoktes72@gmail.com",
        "displayName" : "Henok Tesfaye",
        "userId" : "5bbda46a433ced65ac7c4698",
        "reputationNumber" : 0,
        "questions" : [ 
            "5bbf135d7883513e3839a34c"
        ],
        "answers" : []
    }
]

.find({ displayName: "Henok" }) возвращает пустую запись.

Ответы [ 2 ]

0 голосов
/ 12 октября 2018

Вы можете использовать filter в loopback в where условии.

Два способа использования регулярных выражений в loopback.

Model.find({
    where: {'displayName': /video/i }, //i for case-insensitive.
}, function(err, resilus) {
  console.log(resilus);
});

ИЛИ

var search = new RegExp(search, 'i'); //i for case-insensitive.

Model.find({
    where: {'displayName': search },
}, function(err, resilus) {
  console.log(resilus);
});
0 голосов
/ 12 октября 2018

Использование может использовать регулярное выражение в функции .find(...):

.find({displayName: /Henok/})
...