[英]How to create a Mongoose schema from JSON
我是mongodb,nodejs和mongooseJS的新手。 最近,我一直在嘗試為我的JSON創建一個mongoose模式。
{
"endpoints":["a","z"],
"poi":[{
"location_name": "a",
"latitude": " 10.1075702",
"longitude": "76.345662",
"distance" : "0.0"
}, {
"location_name": "b",
"latitude": "10.110199",
"longitude": "76.3489361",
"distance" : "2.0"
}, {
"location_name": "c",
"latitude": "10.1197471",
"longitude": "76.342873",
"distance" : "3.1"
}, {
"location_name": "d",
"latitude": "10.1254479",
"longitude": "76.3332626",
"distance" : "4.4"
}, {
"location_name": "e",
"latitude": "10.1443277",
"longitude": "76.2566017",
"distance" : "13.9"
}, {
"location_name": "f",
"latitude": "10.1487145",
"longitude": "76.2441114",
"distance" : "15"
}, {
"location_name": "z",
"latitude": "10.145578",
"longitude": "76.2317077",
"distance" : "16.9"
}]
}
這是我的JSON文件。 我嘗試使用https://github.com/nijikokun/generate-schema中的 generate-schema,它給了我以下輸出
{
endpoints:[ 'String' ],
poi: [ 'String' ]
}
我使用了這個,當我使用Chrome webstore中的Postman測試它時,我無法使用get請求從數據庫中檢索完整的JSON。 我都沒能成功運行發布請求。
最近我嘗試使用JSON模式而不是使用mongoose模式
mongoose.Schema("JSON Schema')
當我嘗試使用JSON Schema時,我能夠使用GET請求從mongodb集合中檢索數據,但是我無法使用JSON Schema正確地發布數據
我也在考慮刪除nodejs並重新開發java和mongodb中的webservice。 如果我嘗試使用Java Web服務與mongodb進行交互,是否會影響我的Web應用程序的性能?
您可以使用“ Generate Schemas
模塊來執行此任務。
var jsonObject={
var GenerateSchema = require('generate-schema')
var schema = GenerateSchema.json('Product',jsonObject);
console.log(JSON.stringify(schema))
由於您有兩個主要屬性,一個是endpoints
和其他poi
這是JSON對象的輸出模式
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "Product",
"type": "object",
"properties": {
"endpoints": {
"type": "array",
"items": {
"type": "string"
}
},
"poi": {
"type": "array",
"items": {
"type": "object",
"properties": {
"location_name": {
"type": "string"
},
"latitude": {
"type": "string"
},
"longitude": {
"type": "string"
},
"distance": {
"type": "string"
}
}
}
}
}
}
建議:您將獲得一些不需要的字段,您必須修改它。 所以我認為你應該根據你的對象創建自定義模式,這對你來說會更好
你也可以在這里獲得其他參考
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.