Introduction
Mongoskin is the future layer above node-mongodb-native
var mongo = require('mongoskin'),
db = mongo.db('localhost:27017/test?auto_reconnect');
db.collection('user').ensureIndex([['username', 1]], true, function(err, replies){});
db.collection('posts').hint = 'slug';
db.collection('posts').findOne({slug: 'whats-up'}, function(err, post){
// do something
});
db.collection('posts').find().toArray(function(err, posts){
// do something
});
db.bind('posts', {
findTop10 : function(fn){
this.find({}, {limit:10, sort:[['views', -1]]}).toArray(fn);
},
removeTagWith : function(tag, fn){
this.remove({tags:tag},fn);
}
});
db.posts.findTop10(function(err, topPosts){
//do something
});
db.collection('posts').removeTagWith('delete', function(err, replies){
//do something
});
db.posts.mapReduce(...);
db.createCollection(...);
Is mongoskin synchronized?
Nop! It is asynchronized, it use future.
Back to index
Goals
Provide full features of node-mongodb-native,
and make it future.
Back to index
Install
Soon, not publish to npm yet.
Back to index
Documentation
for more information, see the source.
Back to index
Module
MongoSkin Url format
[*://][username:password@]host[:port][/database][?auto_reconnect[=true|false]]`
e.g.
localhost/blog
mongo://admin:pass@127.0.0.1:27017/blog?auto_reconnect
127.0.0.1?auto_reconnect=false
bind(collectionName)
bind(collectionName, SkinCollection)
bind(collectionName, extendObject1, extendObject2 ...)
Bind SkinCollection to db properties. see SkinDb.bind for more information.
db(databaseUrl)
Get or create instance of SkinDb.
cluster(serverUrl1, serverUrl2, ...)
Create SkinServer of native ServerCluster. e.g.
var mongo = require('mongoskin');
var cluster = mongo.cluster('192.168.0.1:27017', '192.168.0.2:27017', '192.168.0.3:27017')
var db = cluster.db('dbname', 'admin', 'pass');
pair(leftServerUrl, rightServerUrl)
Create SkinServer of native ServerPair
Back to index
SkinServer
SkinServer(server)
Construct SkinServer from native Server instance.
Construct SkinDb from SkinServer.
Back to index
SkinDb
Construct SkinDb.
open(callback)
Connect to database, retrieval native
Db
instance, callback is function(err, db).
collection(collectionName)
Retrieval SkinCollection instance of specified collection name.
bind(collectionName)
bind(collectionName, SkinCollection)
bind(collectionName, extendObject1, extendObject2 ...)
Bind SkinCollection to db properties as a shortcut to db.collection(name).
You can also bind additional methods to the SkinCollection, it is useful when
you want to reuse a complex operation. This will also affect
db.collection(name) method.
e.g.
db.bind('book', {
firstBook: function(fn){
this.findOne(fn);
}
});
db.book.firstBook:(function(err, book){});
all the methods from Db.prototype
See Db of node-mongodb-native for more information.
Back to index
SkinCollection
open(callback)
Retrieval native
Collection
instance, callback is function(err, collection).
id(hex)
Equivalent to
db.bson_serilizer.ObjectID.createFromHexString(hex);
See ObjectID.createFromHexString
findItems(..., callback)
Equivalent to
collection.find(..., function(err, cursor){
cursor.toArray(callback);
});
See Collection.find
findEach(..., callback)
Equivalent to
collection.find(..., function(err, cursor){
cursor.each(callback);
});
See Collection.find
findById(id, ..., callback)
Equivalent to
collection.findOne({_id, ObjectID.createFromHexString(id)}, ..., callback);
See Collection.findOne
updateById(_id, ..., callback)
Equivalent to
collection.update({_id, ObjectID.createFromHexString(id)}, ..., callback);
See Collection.update
find(...)
If the last parameter is function, it is equivalent to native
Collection.find
method, else it will return a future SkinCursor.
e.g.
// callback
db.book.find({}, function(err, cursor){/* do something */});
// future SkinCursor
db.book.find().toArray(function(err, books){/* do something */});
all the methods from Collection.prototype
See Collection of node-mongodb-native for more information.
checkCollectionName
count
createIndex
distinct
drop
dropIndex
dropIndexes
ensureIndex
find
findAndModify
findOne
group
indexInformation
insert
insertAll
mapReduce
normalizeHintField
options
remove
rename
save
update
Back to index
SkinCursor
See Cursor
of node-mongodb-native for more information.
Back to index