Created
January 8, 2014 22:10
-
-
Save sergey-tihon/8325391 to your computer and use it in GitHub Desktop.
F# MongoDB sample (C# Driver)
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#I @"..\packages\mongocsharpdriver.1.8.3\lib\net35\" | |
#r "MongoDB.Driver.dll" | |
#r "MongoDB.Bson.dll" | |
open System | |
open MongoDB.Bson | |
open MongoDB.Bson.Serialization.Attributes | |
open MongoDB.Driver | |
open MongoDB.Driver.Builders | |
open MongoDB.Driver.Linq | |
type Tweet() = | |
member val Id = ObjectId.Empty with get, set | |
member val ProfileImageLocation = "" with get, set | |
[<BsonDateTimeOptions(Kind = DateTimeKind.Local)>] | |
member val CreatedDate = DateTime.MinValue with get, set | |
member val FromUserDisplayName = "" with get, set | |
member val FromUserScreenName = "" with get, set | |
member val ToUserDisplayName = "" with get, set | |
member val ToUserScreenName = "" with get, set | |
member val Text = "" with get, set | |
member val TweetId = "" with get, set | |
member val Source = "" with get, set | |
member val Language = "" with get, set | |
member val Location = "" with get, set | |
let tweets = | |
let collectionName = "fsharp" | |
let client = MongoClient(@"mongodb://localhost") | |
let server = client.GetServer() | |
let database = server.GetDatabase("fsharp") | |
let _collection = database.GetCollection<Tweet>(collectionName); | |
let collection = | |
if (_collection.Exists()) then _collection | |
else database.CreateCollection(collectionName) |> ignore | |
database.GetCollection<Tweet>(collectionName) | |
query { | |
for x in collection.AsQueryable<Tweet>() do | |
select x } | |
|> Seq.toArray |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Greetings.
Despite this gist being useful as it is, I'd like to provide a more or less useful comment (for those who only starting with MongoDB) regarding this class construct. It is not longer necessary and can easily be replaced with a plain F# record type with [].