MongoDB: как найти длину строки


Вы можете использовать следующие методы, чтобы найти длину строки в MongoDB и использовать эту длину строки в запросах:

Способ 1: найти длину строки

db.myCollection.aggregate([
 { $project : {
 "name": 1,
 "length": { $strLenCP : " $name " }
 }}
])

Способ 2: найти документы со строкой больше определенной длины

db.myCollection.find({ 
 "name": { $exists : true },
 $expr : { $gt : [ { $strLenCP : " $name " }, 14 ] } 
})

В следующих примерах показано, как использовать каждый метод с набором команд со следующими документами:

db.teams.insertOne({name: " Dallas Mavs", points: 31})
db.teams.insertOne({name: " San Antonio Spurs", points: 22})
db.teams.insertOne({name: " Houston Rockets", points: 19})
db.teams.insertOne({name: " Boston Celtics", points: 26})
db.teams.insertOne({name: " Cleveland Cavs", points: 33})

Пример 1: найти длину строки

Мы можем использовать следующий код для вычисления длины строки в поле «имя» каждого документа:

db.teams.aggregate([
 { $project : {
 "name": 1,
 "length": { $strLenCP : " $name " }
 }}
])

Этот код возвращает следующие результаты:

{ _id: ObjectId("62014eff4cb04b772fd7a93d"),
 name: 'Dallas Mavs',
 length: 11 }
{ _id: ObjectId("62014eff4cb04b772fd7a93e"),
 name: 'San Antonio Spurs',
 length: 17 }
{ _id: ObjectId("62014eff4cb04b772fd7a93f"),
 name: 'Houston Rockets',
 length: 15 }
{ _id: ObjectId("62014eff4cb04b772fd7a940"),
 name: 'Boston Celtics',
 length: 14 }
{ _id: ObjectId("62014eff4cb04b772fd7a941"),
 name: 'Cleveland Cavs',
 length: 14 } 

Значение длины отображает длину строки в столбце «имя».

Например:

  • Длина строки 'Dallas Mavs' равна 11 .
  • Длина строки «Сан-Антонио Спёрс» равна 17 .

И так далее.

Обратите внимание, что длина также учитывает пробелы.

Пример 2. Поиск документов со строкой большей длины, чем определенная

Мы можем использовать следующий код для возврата только тех документов, в которых строка в столбце «имя» больше 14 :

db.teams.find({ 
 "name": { $exists : true },
 $expr : { $gt : [ { $strLenCP : " $name " }, 14 ] } 
})

Этот запрос возвращает следующие результаты:

{ _id: ObjectId("62014eff4cb04b772fd7a93e"),
 name: 'San Antonio Spurs',
 points: 22 }
{ _id: ObjectId("62014eff4cb04b772fd7a93f"),
 name: 'Houston Rockets',
 points: 19 } 

Обратите внимание, что возвращаются только две команды, в которых длина поля «имя» превышает 14 .

Примечание.Полную документацию по функции $strLenCP можно найти здесь .

Дополнительные ресурсы

В следующих руководствах объясняется, как выполнять другие распространенные операции в MongoDB:

MongoDB: как разбить строку на массив подстрок
MongoDB: как объединить строки из двух полей
MongoDB: как заменить строки в

Замечательно! Вы успешно подписались.
Добро пожаловать обратно! Вы успешно вошли
Вы успешно подписались на кодкамп.
Срок действия вашей ссылки истек.
Ура! Проверьте свою электронную почту на наличие волшебной ссылки для входа.
Успех! Ваша платежная информация обновлена.
Ваша платежная информация не была обновлена.