如何处理文档从mongoDB与_bsontype属性
how to handle document from mongoDB with _bsontype properties
嗨,我正在浏览mongoDB中查询文档的JSON数组。事实是,我得到以下行为,我不知道为什么我得到这个:
in key: _bsontype |value: ObjectID
in key: id |value: S÷¯çò9þ w
in key: _bsontype |value: ObjectID
in key: id |value: S÷¯çò9þ h
in key: _bsontype |value: ObjectID
in key: id |value: S÷¯çò9þ h
in key: name |value: Default Process
in key: processType |value: Public
in key: id |value: BPMNDiagram_1
in key: name |value: procurement subprocess
如你所见,这是……这是我的代码:
function changeIDs(json, map, count){
for(var key in json){
if(json.hasOwnProperty(key))
if(typeof json[key] === 'object')
changeIDs(json[key], map, count);
else{
console.log("in key: "+key + " |value: "+json[key]);
}
}
}
这是我的输入(json参数)的一部分:
[
{
"_id": "538df78eafe7f28d39fe2077",
"processId": "538df71bafe7f28d39fe2068",
"processMeta": {
"id": "538df71bafe7f28d39fe2068",
"name": "Default Process",
"processType": "Public"
},
"diagram": {
"id": "BPMNDiagram_1",
"name": "procurement subprocess"
},
"plane": {
"id": "BPMNPlane_1",
"bpmnElement": "538df71bafe7f28d39fe2068"
}
},
{other objects..},{other objects..}
]
是的,processId和_id是用ObjectId函数生成的,似乎这里出现了问题,我不确定这一点,但我的猜测是每个_bsontype对应于mongoSB对象Id,这是一个对象,所以我的函数递归地进入这个。得到以下S÷¯çò9þ w
..我说的对吗?
似乎也如果我不能得到"processId"answers"_id"键在我的for,正因为如此,我想是我的_bsontype…最后,我的问题是,我怎么能遍历我的对象而不得到那个结果?,你必须看到有一个"id"属性包含垃圾数据,我不希望它在我的结果中,当寻找所有键id时,例如,但仍然能够获得ObjectId。我的属性"processId"或"_id"的str值。
以防万一,如果将来有像我一样不幸的人遇到同样的问题。
正如你可以看到我的函数changeIDs得到3个参数,我只是改变json参数,它应该是一个json(它是)你可以看到我的json输出作为我的问题中的文本,所以它是一个有效的json,但是我做了一个字符串的解析。然后我再试一次……
那么解决方案是什么呢?newJson = JSON.parse(JSON.stringify(json));
为什么?我认为最好的办法是这样,当我们对一个对象进行字符串化处理时,对象会以如下方式改变:
- 未定义的值在结果中消失。
- 丢失原型属性
- 函数死亡
例如,如果json有一个对象DATE,这个对象将被字符串化为DATE . tostring(),因此它将存储字符串表示。如果函数没有to字符串,则为undefined。
这最后是为什么做一个stringify它是工作后,我的函数ObjectId()没有生存到我的stringify,但它转换为字符串值它包含,这是Mongo对象id值…
- 如何缩短MongoDB ObjectId并在Mongoose模式中使用它
- 如何处理node.js节点mongodb中的连接和查询队列
- MongoDB (php) - 以数组而不是多个属性的形式返回文档属性
- 使用mongodb更新中的一个变量
- 键名中的 MongoDB 点 (.)
- 用于视频类型的MongoDB结构's
- Mongodb数千个并行运行的查询
- 如何访问对象内部的“categoryIds”字段/键,该对象包含mongodb's `ObjectId(s)`数
- 无法在Meteor/MongoDB中返回当前用户对象
- 检索MongoDB binData并显示为<img>src
- Mongodb/JS:查找最短(最早)日期
- 如何在MongoDB中将String转换为Array
- NodeJS expressJS使用multer和passport将文件上传并保存到MongoDB
- MongoDB + SQL Select equivalent
- mongodb regex parameter
- Mongodb$in以与数组中相同的顺序获取结果
- MongoDB-通过比较集合和对象的数组来返回现有字段的数组
- 更新属性工作不正常Meteor/MongoDB
- 如何从多个不同的html页面获得mongodb文档的用户输入
- 未处理的拒绝MongoError:无法连接到MongoDB中的服务器