Не удается подключиться к mongo с помощью Clozure CL - cl-mongo

Обновление 3: это относится к Clozure Common Lisp. Впоследствии я попробовал это в SBCL, и он работал без проблем, используя последнюю версию mongo-community.

Я слежу за книгой Lisp для Интернета, которая пользуется успехом. Теперь я дошел до раздела, в котором используется mongodb, с которым у меня ограниченный опыт. Мне не удается подключиться к mongo из CCL с помощью cl-mongo. я имеюmongodb-community установлен через brew и mongodb/brewнажмите в соответствии с инструкциями и выдайтеmongo в командной строке переводит меня в оболочку mongo, поэтому кажется, что она установлена ​​нормально.

Но из попытки подключения CCL я получаю следующее:

(Странно, когда я выдаю (db.use "test") он всегда терпит неудачу при отказе в соединении в первый раз, затем не жалуется во второй раз, когда выдается "в пределах ошибки", как показано ниже).

(Я не совсем понимаю, что на самом деле означает выдача выражений "внутри ошибки" или что там можно разумно делать - любая помощь по этому поводу была бы замечательной, в том числе о том, как узнать больше об этом).

CCL is free software.  It is distributed under the terms of the Apache
Licence, Version 2.0.
? (ql:quickload '(:cl-mongo))
To load "cl-mongo":
  Load 1 ASDF system:
    cl-mongo
; Loading "cl-mongo"

(:CL-MONGO)
? (use-package :cl-mongo)
T
? (db.use "test")
> Error: Error #<USOCKET:CONNECTION-REFUSED-ERROR #x30200262ED9D>
> While executing: USOCKET::RAISE-ERROR-FROM-ID, in process listener(1).
> Type :POP to abort, :R for a list of available restarts.
> Type :? for other options.
1 > (db.use "test")
"test"
1 > (db.insert "foo" (kv "document" "one"))
error occured when sending message : There is no applicable method for the generic function:
  #<STANDARD-GENERIC-FUNCTION USOCKET:SOCKET-STREAM #x30200244649F>
when called with arguments:
  (NIL)
closing connection (type-of MONGO) [name : DEFAULT ] 
 {[id : 9FB20354-9DFF-41E5-B2C6-737F0D7D2FB0] [port : 27017] [host : localhost] [db : test]} 


 unable to close mongo connection for mongo connection (type-of MONGO) [name : DEFAULT ] 
 {[id : 9FB20354-9DFF-41E5-B2C6-737F0D7D2FB0] [port : 27017] [host : localhost] [db : test]} 
: error There is no applicable method for the generic function:
  #<STANDARD-GENERIC-FUNCTION USOCKET:SOCKET-CLOSE #x30200244095F>
when called with arguments:
  (NIL)
NIL
1 > 

Вот что я получаю, когда печатаю mongo в оболочке

mbp:lispforweb m$ mongo
MongoDB shell version v4.2.1
connecting to: mongodb://127.0.0.1:27017/?compressors=disabled&gssapiServiceName=mongodb
Implicit session: session { "id" : UUID("acd39568-e862-4a2d-8dcf-45409f11e029") }
MongoDB server version: 4.2.1
Server has startup warnings: 
2019-11-17T23:02:18.194+0000 I  CONTROL  [initandlisten] 
2019-11-17T23:02:18.194+0000 I  CONTROL  [initandlisten] ** WARNING: Access control is not enabled for the database.
2019-11-17T23:02:18.194+0000 I  CONTROL  [initandlisten] **          Read and write access to data and configuration is unrestricted.
2019-11-17T23:02:18.194+0000 I  CONTROL  [initandlisten] 
---
Enable MongoDB's free cloud-based monitoring service, which will then receive and display
metrics about your deployment (disk utilization, CPU, operation statistics, etc).

The monitoring data will be available on a MongoDB website with a unique URL accessible to you
and anyone you share the URL with. MongoDB may use this information to make product
improvements and to suggest MongoDB products and deployment options to you.

To enable free monitoring, run the following command: db.enableFreeMonitoring()
To permanently disable this reminder, run the following command: db.disableFreeMonitoring()
---

> exit
bye
mbp:lispforweb m$ 

Обновление: мне не удалось подключиться, используя старую версию Robo3T, которая была в моей системе, пока я не обновил ее до последней версии, чтобы отразить mongo v4.x. Поскольку cl-mongo не использовался несколько лет, возможно, он несовместим с mongodb v.4.x? (догадка).

Обновление 2: я понизил рейтинг mongo до mongodb-community@3.2, и у меня такая же проблема. Вопрос на странице GitHub из Монго-ХЛ предлагает Монго-мл не совместим с MongoDB> v.3.0, и ни одна из версий ниже 3.2, кажется, не поддерживается больше (доступно на Монго заварной кране). 3.2 - самый старый из доступных.

0 ответов

Другие вопросы по тегам