首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >抑制MongoDB缝合函数中的值类型

抑制MongoDB缝合函数中的值类型
EN

Stack Overflow用户
提问于 2019-03-22 19:21:12
回答 1查看 968关注 0票数 0

针法函数返回每个非字符串字段的值类型。我相信这是因为函数在MongoDB扩展JSON中返回数据。

另一方面,Mongo返回标准的JSON,而不返回值类型。

如何抑制MongoDB函数返回的值类型?能否将EJSON转换回JSON?

例如,对于日期字段,Mongo返回:

代码语言:javascript
复制
"dob" : ISODate("1995-01-11T00:00:00.000-07:00")

Stitch函数中的相同查询返回:

代码语言:javascript
复制
"dob": {
  "$date": {
    "$numberLong": "232182000000"
  }

我的Stitch函数如下所示:

代码语言:javascript
复制
exports = function(){
    const collection = context.services.get("mongodb-atlas").db("mydb").collection("mycollection");
    const doc = collection.find().toArray();
  return doc;
};

是否有一个可以去掉值类型的助手函数?就像..。

代码语言:javascript
复制
exports = function(){
    const collection = context.services.get("mongodb-atlas").db("mydb").collection("mycollection");
    const doc = collection.find().toArray();
    const noValueTypes = doc.stripValueTypes()
  return noValueTypes;
};
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-03-26 16:41:06

当函数结果被传递给客户端时,它确实被序列化为EJSON。

理想情况下,客户端可以将EJSON解析回常规JS对象,例如使用EJSON库,该库也内置于针迹SDK中。

当然,如果您使用的是Stitch,直接调用函数甚至更好。

另一个选项是使用响应对象传递JSON,如下所示:

代码语言:javascript
复制
exports = function(request, response) {
  // ... get data ...
  response.addHeader(
    "Content-Type",
    "application/json"
  );
  response.setBody(JSON.stringify(myData));
};

注意,JSON不能表示一些特殊的BSON类型,例如object id,所以在决定返回哪些数据时要记住这一点。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55306499

复制
相关文章

相似问题

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