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: визначення довжини рядка
Ми можемо використати такий код, щоб обчислити довжину рядка в полі «name» кожного документа:
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 }
Значення довжини відображає довжину рядка в стовпці “ім’я”.
Наприклад:
- Довжина ланцюжка “Даллас Мевс” становить 11 .
- Довжина ланцюга «Сан-Антоніо Сперс» становить 17 .
І так далі.
Зверніть увагу, що довжина також враховує порожні місця.
Приклад 2: пошук документів, рядок яких перевищує певну довжину
Ми можемо використати наступний код, щоб повернути лише документи, рядок яких у стовпці “name” перевищує 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: Як замінити рядки в