web-dev-qa-db-ja.com

mongodbを組み込みデータベースとして使用できますか?

私はRSSリーダーアプリケーションに取り組んでいます。そして、バックエンドデータベースを見つける必要があります。ユーザーにデータベースサーバーをインストールさせたくないので、データベースを組み込みます。

SQLiteが良い選択であることは知っていますが、他にnosqlの選択肢があるかどうか疑問に思っていますか?

57
Bill Yan

Googleグループによると、はい、できますが、どの程度正確かをカバーしていません。

はい。ただし、見栄えは悪く、アプリをAGPLライセンスに強制します。興味がある場合は、ツールが--dbpathオプションをどのように処理するかを見てください。

ソース: http://groups.google.com/group/mongodb-user/browse_thread/thread/463956a93d3fb734?pli=1

.NETを使用している場合、オプションの1つは RavenDB です。これはドキュメントデータベースであり、埋め込むことができます。

19
Joe Doyle

(承認された回答にコメントしてビルドするための50担当ポイントがまだありません;それ以外の場合は申し訳ありません!)

OEMソリューションにMongoDBを組み込むことができますが、考慮すべき2つの点があります。

  1. C++で記述されているため、別の言語でコーディングする場合は、データベースプロセスを個別に起動するラッパーを記述する必要があります。

  2. MongoDBは、コピーレフトサーバーライセンスであるGnu AGPL-3.0の下でライセンスされています。受け入れられた回答とGoogleのグループの引用は、どちらもこれにより通常はAGPLライセンスの取得を強制されると正しく述べています。ただし、MongoDbは、ライセンスの意図は、コードの改良版を返送できるようにすることであり、製品は分離されたままになると述べています。これにより、通常のコピーの残されたルールは適用されないと考えられます。

サーバーライセンスの目標は、MongoDBの拡張機能をコミュニティにリリースすることを要求することです。クラウドで膨大な量のソフトウェアが実行されるため、従来のGPLではこれを達成できなくなることがよくあります。たとえば、GoogleはMySQLカーネルの改善点をリリースする義務はありません。改善した場合は、ニースです。

上記を実用的にするために、データベースを使用するクライアントアプリケーションは別の作業であることをお約束します。これを容易にするために、mongodb.orgがサポートするドライバー(アプリケーションとリンクする部分)は、Apacheライセンスでリリースされます。これはコピーレフトフリーです。注:上記の約束を表明する署名入りの手紙が必要な場合は、メールでリクエストしてください。

ソース: http://www.mongodb.org/display/DOCS/Licensing

53
Steve McDowell

チェックアウトしてください https://github.com/Softmotions/ejdb この問題を解決するために開発されたこのプロジェクト。

14
Anton

Couchbase Liteはどうですか?これは、オープンソースの埋め込み可能なドキュメントデータベースです。スタンドアロンのドキュメントデータベースとして機能できますが、実際の価値はリモートドキュメントデータベースと同期できることです。 iOS/Androidを対象としている場合がありますが、JVMがあれば何でも実行できます。

https://github.com/couchbase/couchbase-lite-Java

4
Shane

再利用可能なライブラリの観点から、MongoDBを組み込みライブラリとして使用する直接的な転送方法はありません。エリオット-10genの責任者-「持っているのはいいだろう」と話しました-しかし、健全な方法で再利用できるものはありません。

2
Andreas Jung

多くのOEMが、リアルタイム処理のためにMongoをハードウェアおよびデバイスに接続しようとしているようです。 MongoDBウェブサイトからのリンク

0
Praneesh