首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在cl-mongo中将元素obj更改为alist?

如何在cl-mongo中将元素obj更改为alist?
EN

Stack Overflow用户
提问于 2013-12-05 22:31:20
回答 1查看 130关注 0票数 0

db.find将返回MongoDB格式的文档。

我想要获取文档的所有元素,然后更改为alist。

但是我还没有找到获取元素的函数。

我发现elements是文档中的hashmap,它有一个名为elements的访问器。

但是当我在自己的包中使用(elements docTmp)时,它返回没有名为elements的函数。

EN

回答 1

Stack Overflow用户

发布于 2014-01-16 17:17:34

我建议不要深入研究document的内部结构,而要使用提供的函数mapdoc。您还可以考虑使用递归解析将可能的子文档也转换为alists。因此,代码可能如下所示:

代码语言:javascript
复制
(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)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20402654

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档