Macでやりたいのでここからzipをダウンロードする。
http://driver-downloads.mongodb.org/dotnet/index.html
ちなみにこちらではgitとかから落とせる手順
http://docs.mongodb.org/ecosystem/tutorial/use-csharp-driver/#csharp-driver-tutorial-downloading
公式: http://docs.mongodb.org/ecosystem/drivers/csharp/
→ おそらくUnityのではMonoのバージョンが古くて動かないっぽい。
・動かないというやりとり
URLその1: http://grokbase.com/p/gg/mongodb-csharp/131qh77maj/mongodb-user-re-were-planning-to-make-net-4-the-minimum-requirement-for-the-c-net-driver
URLその2: https://groups.google.com/forum/#!topic/mongodb-csharp/v5bR6bmXxGg
しかし、テキトーに探してると、「monodevelop-mongodb-provider」なるもの
こちらのはできた。
monodevelop-mongodb-providerのgithubのURL: https://github.com/schamane/monodevelop-mongodb-provider
・MongoDB.Bson.dll
・MongoDB.Driver.dll
をUnityのpluginsにぶっこむ。僕は「MongoDB」フォルダを生成してから行った。
「plugins/MongoDB」
この「けさらんぱさらん」というサイトを参考にした。
URL: http://d.hatena.ne.jp/cer1974/20120427/1335539220
・MongoDBTest.cs
using UnityEngine;
using System.Collections;
using System.Collections.Generic;
using System;
using MongoDB.Driver;
using MongoDB.Driver.Builders;
using MongoDB.Bson;
using MongoDB.Bson.Serialization.Attributes;
public class MongoDBTest : MonoBehaviour
{
void Start ()
{
var server = MongoServer.Create ("mongodb://localhost");
var db = server.GetDatabase ("mydb");
var collection = db.GetCollection ("entities");
var entry = new AddressEntry ()
{
Name = "Mr.name",
Birthday = DateTime.Parse ("1964/02/03"),
EmailAddrs = new List<Email> ()
{
new Email () { DisplayName = "momo", MailAddress = "T.Sumomo@momo.com" },
new Email () { DisplayName = "bono", MailAddress = "Bonobono@bono.jp" }
}
};
collection.Insert (entry);
}
[BsonIgnoreExtraElements]
public class AddressEntry
{
public string Name { get; set; }
public DateTime Birthday { get; set; }
public List<Email> EmailAddrs { get; set; }
}
[BsonIgnoreExtraElements]
public class Email
{
public string DisplayName { get; set; }
public string MailAddress { get; set; }
}
}
→ これを実行した。
・コンソールでの確認
& mongo
MongoDB shell version: 2.2.0
connecting to: test
> use mydb
switched to db mydb
> db.entities.find()
{ "_id" : ObjectId("51f87ed9f70ac5769e2683ad"), "Name" : "Mr.name", "Birthday" : ISODate("1964-02-02T15:00:00Z"), "EmailAddrs" : [ { "DisplayName" : "momo", "MailAddress" : "T.Sumomo@momo.com" }, { "DisplayName" : "bono", "MailAddress" : "Bonobono@bono.jp" } ] }
な感じになる。