db.find将返回MongoDB中的文档。
我想获取文档的所有元素,然后更改为alist。
但是我还没有找到获取元素的函数。
我发现元素是文档中的hashmap,它有一个名为elements的访问器。
但是当我在自己的包中使用(elements docTmp)
时,它返回没有名为elements的函数。
答案 0 :(得分:0)
我建议不要深入研究document
的内部,而是使用提供的函数mapdoc
。您还可以考虑递归解析以将可能的子文档转换为alists。所以代码可能如下所示:
(defgeneric mongo-document->alist (doc))
(defmethod mongo-document->alist ((doc cl-mongo:document))
(let ((alist '()))
(cl-mongo:mapdoc (lambda (key value)
(push
(cons
key
(mongo-document->alist value))
alist))
doc)
alist))
(defmethod mongo-document->alist ((obj t))
obj)