2016-09-07 6 views
3

私はmongodb、nodejs、mongooseJSを初めて利用しています。最近、JSON用のマングーススキーマを作成しようとしています。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ファイルです。私は私に

{ 
endpoints:[ 'String' ], 
poi: [ 'String' ] 
} 

が、私はこれを使用し、次の出力を与えたhttps://github.com/nijikokun/generate-schemaから-生成するスキーマを使用してみましたし、私はそれがクロームウェブストアからポストマンを使用して試験したとき、私は、getを使用してデータベースから完全なJSONを取得することができませんでした要求。私はポストリクエストをうまく実行できませんでした。

最近私はJSONスキーマを使用しようとすると、私はGETリクエストを使用してMongoDBのコレクションからデータを取得することですが、私はできませんよ

mongoose.Schema("JSON Schema') 

を使用してJSONスキーマの代わりに、マングースのスキーマを使用してみましたJSONスキーマでPOSTデータを正しくPOSTするには

また、nodejを削除し、javaとmongodbでWebサービスを再開発することも考えていました。 mongodbとやりとりするためにJava Webサービスを使用しようとすると、Webアプリケーションのパフォーマンスに影響を及ぼしますか?

+1

を得ることができるであろう、あなたのオブジェクトに基づいてカスタムスキーマを作成すべきだと思いますこのことをやる? – abdulbarik

+0

私は自分のJSONに使用する必要があるマングーススキーマを知りたいだけです – KimboKast

+0

[JSONファイルからマングーススキーマを定義する]の可能な複製(http://stackoverflow.com/questions/26859976/defining-a-mongoose- schema-from-a-json-file) –

答えて

2

Generate Schemasモジュールを使用すると、このタスクを実行できます。

var jsonObject={ 
var GenerateSchema = require('generate-schema') 
var schema = GenerateSchema.json('Product',jsonObject); 

console.log(JSON.stringify(schema)) 

次の2つの主要な特性を持っているので、1が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" 
      } 
     } 
     } 
    } 
    } 
} 

提案:あなたが取得しますいくつかの不要なフィールドとそれを変更する必要があります。だから私は、あなたがより良いあなた

のためにまた、あなたは即座にそれを行うのか、に任意の関数を作りたい、他の参照here

+0

ありがとう私はあなたが提供したスキーマ上でいくつかのカスタマイズをしてデータを取得することができました。しかし、私が知りたいことはほとんどありません。あなたはmongooseスキーマではなくJSONスキーマで私に答えてきました。参考文献では、JSONスキーマをmongooseスキーマに変換する方法について詳しく説明しました。どちらを使うべきですか? – KimboKast

+0

これを徹底的に調べてみましたが、Webサービスに何かを投稿することはできませんが、取得リクエストでデータを取得することができます – KimboKast

+0

生成された 'schema'をカスタマイズして有効なJSONを取得すれば、 'mongoose.Schema'コンストラクタで渡してください。 ' mongoose.Schema(あなたのカスタマイズスキーマ) ' – abdulbarik

関連する問題