2016-07-11 6 views
0

Я могу выполнить ниже запрос в mangodbКак использовать "значение%" с как ключевое слово в mangodb

MySQL:

SELECT * FROM users WHERE user_id like "bc%; 

MangoDB:

db.users.find({ user_id: /^bc/ }) 

выше запрос работает. Но ниже запрос не работает никому, пожалуйста, дайте мне предложение.

Mysql:

SELECT * FROM users WHERE user_id like "%bc"; 

MangoDB:

db.users.find({ user_id: /bc^/ }); 

ответ

1

В Regex ^ символ маркирует начало предмета. Таким образом, размещение с правой стороны не имеет смысла.

Вместо этого, «конец строки» аналога для ^ является $:

db.users.find({ user_id: /bc$/ }); 

Это переводит: Найти пользователей, где последние два символа атрибута user_id являются «BC».

+0

Благодаря своей работе – Gobi

1

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

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

или, похоже,

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

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

Пожалуйста, проверьте для получения дополнительной информации:How to query MongoDB with "like"?