Null
6.0.6 (May 12) ◦ 5.0.18 (May 18) • 4.4.22 (May 18)
🔥 Вышли версии 6.0.6, 5.0.18 и 4.4.22
☠️ Прекращена поддержка ветки 4.2
• Документация
• Официальный курсы: MongoDB University
Stable: 6.0.6 (May 12)
Bugfix: 5.0.18 (May 18)
Legacy: 4.4.22 (May 18, ☠️ Feb '24)
☠️ 4.2.24 (Apr '23), 4.0.28 (Apr '22), 3.6.23 (Mar ’21), 3.4.24 (Jan ‘20)
🧑🔧 Консультации и поддержка MongoDB от 2190€ в месяц: @dd_bb
Глеб
Привет всем. Подскажите такой вопрос.
Не могу добавить shard в mongos
sh.addShard("shard1/mongodb-replica-1:27017")
Ошибка вида: Could not find host matching read preference { mode: \"primary\" } for set shard1
telnet: telnet mongodb-replica-1 27017
Trying 10.0.1.13...
Connected to mongodb-replica-1.
Escape character is '^]'.
rs.status() с первого шарда и единственной реплики:
"set" : "shard1",
"stateStr" : "PRIMARY",
Что я делаю не так?
Just
Глеб
А по адресам, которые указываешь, они доступны?
Указываю hostname, в моём случае это mongodb-replica-1 Отправил telnet до него от mongos, доступ есть по 27017, никакой авторизации вообще не настроено в данный момент. Не через пароль, не через серт/mongo-key-file
Доступ к mongos не нужен как я понимаю, так я его забиндил (по дефолту 127.0.0.1)
Ради интереса могу открыть доступ до mongos, но это я думаю ничего не изменит.
Глеб
Так же есть такие ошибки на стороне конфиг сервера:
msg":"addShard request failed","attr":{"request":"AddShardRequest shard: shard1/mongodb-replica-1:27017","error":{"code":133,"codeName":"FailedToSatisfyReadPreference","errmsg":"Failed to refresh the balancer settings :: caused by :: Could not find host matching read preference { mode: \"nearest\" } for set config"}}}
{"t":{"$date":"2023-06-27T12:03:30.938+00:00"},"s":"I", "c":"CONNPOOL", "id":22566, "ctx":"ReplicaSetMonitor-TaskExecutor","msg":"Ending connection due to bad connection status","attr":{"hostAndPort":"mongodb-replica-1:27017","error":"CallbackCanceled: Callback was canceled","numOpenConns":0}}
UPD: Теперь другого вида ошибка на стороне mongos
Failed to refresh the balancer settings :: caused by :: Could not find host matching read preference { mode: \"nearest\" } for set config
Alikhan
Приветствую!
Использую бесплатную версию mongodb (500mb) с nestjs.
Есть запрос GET который возвращает документы по сортировке, лимиту и скип.
Всего 26 документов.
MongoDB в первом запросе возвращает 20 документов, во втором запросе возвращает 1 документ, по логике должен вернуть 6.
Подскажите в чем проблема?
Nick
Alikhan
Just
Так же есть такие ошибки на стороне конфиг сервера:
msg":"addShard request failed","attr":{"request":"AddShardRequest shard: shard1/mongodb-replica-1:27017","error":{"code":133,"codeName":"FailedToSatisfyReadPreference","errmsg":"Failed to refresh the balancer settings :: caused by :: Could not find host matching read preference { mode: \"nearest\" } for set config"}}}
{"t":{"$date":"2023-06-27T12:03:30.938+00:00"},"s":"I", "c":"CONNPOOL", "id":22566, "ctx":"ReplicaSetMonitor-TaskExecutor","msg":"Ending connection due to bad connection status","attr":{"hostAndPort":"mongodb-replica-1:27017","error":"CallbackCanceled: Callback was canceled","numOpenConns":0}}
UPD: Теперь другого вида ошибка на стороне mongos
Failed to refresh the balancer settings :: caused by :: Could not find host matching read preference { mode: \"nearest\" } for set config
Везде на хост ругается, так не скажу)
yopp
Так же есть такие ошибки на стороне конфиг сервера:
msg":"addShard request failed","attr":{"request":"AddShardRequest shard: shard1/mongodb-replica-1:27017","error":{"code":133,"codeName":"FailedToSatisfyReadPreference","errmsg":"Failed to refresh the balancer settings :: caused by :: Could not find host matching read preference { mode: \"nearest\" } for set config"}}}
{"t":{"$date":"2023-06-27T12:03:30.938+00:00"},"s":"I", "c":"CONNPOOL", "id":22566, "ctx":"ReplicaSetMonitor-TaskExecutor","msg":"Ending connection due to bad connection status","attr":{"hostAndPort":"mongodb-replica-1:27017","error":"CallbackCanceled: Callback was canceled","numOpenConns":0}}
UPD: Теперь другого вида ошибка на стороне mongos
Failed to refresh the balancer settings :: caused by :: Could not find host matching read preference { mode: \"nearest\" } for set config
А какой статус у конфиг реплики? Там есть primary?
yopp
Все участники репликасета должны иметь возможность подключиться к остальным участникам по хостам указанным в rs.config.
То же самое касается mongos, он должен иметь возможность подключиться по именам хостов из конфигурации ко всем участникам шарда
Semyon V
Danila
В mongoDB можно сделать конструкцию updateIf ?
т7е. обновить запись в случае, если выполнены условия (условия - запрос для той же коллекции)
Глеб
Ребята, подскажите у меня два config-serverа, один из них должен быть secondary или оба должны быть primary?
Андрей
Глеб
Ааа, всё вижу, Андрей. Благодарю
Андрей
Всем привет!
Подскажите плз как абортнуть транзакцию в withTransaction
У меня так и чет не работает
session.withTransaction((handle) => {
...
if (true) {
await handle.abortTransaction()
}
})
yopp
Андрей
Андрей
Oleg
Всем привет! Подскажите плиз, правильно понимаю, что для incremental backup необходимо использовать --oplog?
Nick
SuperNatural
ребят может кто сталкивался в агрегированом запросе сортирую массив, но после применения lookup сортировка ломается и дает опять в разнобой, не подскажите как сохранить последовательность?
{ $set: {
"github.stacks.languages": {
$sortArray: {
input: "$github.stacks.languages",
sortBy: { "bytes": -1 }
}
}
}},
{
"$lookup": {
"from": "languages",
"localField": "github.stacks.languages.language",
"foreignField": "_id",
"as": "github.stacks.languages",
}
},
Nick
SuperNatural
это поле пропадает после
"languages": [
{
"language": {"$oid": "61473e465b1f92d4c5f40af5"},
"bytes": 379307336
},
{
"language": {"$oid": "614740155b1f92d4c5f40afc"},
"bytes": 9411577
},
]
SuperNatural
когда делаю лукап bytes затирает
SuperNatural
{
"$lookup": {
"from": "languages",
"localField": "github.stacks.languages.language",
"foreignField": "_id",
"as": "github.stacks.languages",
}
}
Nick
SuperNatural
@yatoba просто создает новую вложеность, поле bytes затирается(
SuperNatural
"languages": {
"language": []
}
Nick
"languages": {
"language": []
}
понял, наконец что хочется. Вы хотите к каждому элементу массива подтянуть доп инфу - такое не провернуть. Вы только можете вытащить все связанные доки в массив рядом и потом при необходимости работат ьс этими двумя массивами. Порядок соответственно не сохранится
SuperNatural
@yatoba все верно, уже нашел статью описывающу мой кейс придется unwind делать https://dev.to/krishnabose02/mongodb-lookup-on-an-array-of-objects-which-contains-foreign-objectid-as-a-key-37b9
Спасибо за внимание!
Nick
SuperNatural
уже пытался через pipeline он создает массив со всеми значениеями которые находятся в массиве
SuperNatural
{
$lookup: {
from: 'products',
localField: 'products.productId',
foreignField: '_id',
as: 'productDetail'
}
},
{
$addFields: {
products: {
$map:{
input:"$products",
as:'product',
in:{
$mergeObjects:[
'$$product',
{product:{$arrayElemAt:['$productDetail',{$indexOfArray:['$products','$$product']}]}}
]
}
}
}
}
},
{
$unset:["productDetail"]
}
SuperNatural
вот не плохой пример через map двух обьектов
Nick
MaxSMoke | Beware of SMoke
Приветствую. Пытаюсь запустить монгодб в докере из-за проблем с репозиторями в arch. Делаю всё по сайту docker.com и получаю ошибку 100
t={"$date":"2023-06-28T13:28:44.999+00:00"} s=I c=CONTROL id=23138 ctx=initandlisten msg=Shutting down attr={"exitCode":100}
То-ли у них что-то не дописано в примере запуска, то-ли я дурак. Помогите пож.
Саня
нормально ли практикой является брать дату с objectId? Для агригации и т.д
Или лучше создавать поле date в iso формате?
MaxSMoke | Beware of SMoke
предчувствую что это что-то банальное, но мне в 23:35(Вдк) просто уже не думается
Easy Rider
MaxSMoke | Beware of SMoke
?
Easy Rider
зёма = земляк.
MaxSMoke | Beware of SMoke
а, приветствую
Саня
MaxSMoke | Beware of SMoke
видимо exitcod'ы те, кто сейчас в сети не знают, не вовремя я
Nick
Nick
Андрей
Андрей
$ python3 -m pip install -r etc/pip/compile-requirements.txt
$ python3 buildscripts/scons.py DESTDIR=/opt/mongo install-mongod
MaxSMoke | Beware of SMoke
MaxSMoke | Beware of SMoke
Андрей
эм, чего блин?
https://github.com/mongodb/mongo/blob/master/docs/building.md
MaxSMoke | Beware of SMoke
MaxSMoke | Beware of SMoke
MaxSMoke | Beware of SMoke
Easy Rider
Easy Rider
i5 2500, ЕМНИП, че-то около 3,3 в разгоне
MaxSMoke | Beware of SMoke
баги :)
MaxSMoke | Beware of SMoke
MaxSMoke | Beware of SMoke
Это сервер, а на нем я ООЧЕНЬ много что делаю
MaxSMoke | Beware of SMoke
у меня рейд 01 на 1 тб забился :)
Андрей
Самому интересно сколько будет собираться, уже долго маслает компил 🤔. Там того бинарника весом с гулькин нос...
Андрей
еще и 20ж рамы сожрало 🤦
Сергей
Всем привет!
У меня задача - настроить ODBC для монги на линуксе и написать понятную инструкцию про это.
Две виртуалки. На одной поставил ODBC. На другой - монга 4.4.15 и bi-connector. Сейчас донастраиваю bi-connector.
ODBC нужен для того, чтобы веб-сервисом тягать данные из монги.
Вопрос: оно в принципе должно так работать? А то в чате увидел, что такое только для Enterprise-версий.
Easy Rider
напишы бота
Lukaš 🇨🇿
Lukaš 🇨🇿
Ну в плане, я сейчас посмотрел как это работает, не понял в чем разница, какие там плюсы
Air
Создал text index по полю name в бд и по нему производится поиск.
В бд теперь также есть поле category. Как найти name строго по category?
const product = await collectionFull.aggregate (
[
{ $match: { $text: { $search: name } } },
{ $sort: { score: { $meta: "textScore" }, name: 1 } }
]
)
Air
использую $and?