Closed ronen1malka closed 9 years ago
Operations are done via the following syntax: db('blog.$cmd').find(command,1)
The list of available operations are here: http://docs.mongodb.org/manual/reference/command/
For example, dropping our 'users' collection from our 'blog' database is as simple as: db('blog.$cmd').find({drop:"users"},1)
.
However, doing things like creating or dropping indices gets ugly. MongoDB's command for this is listed here: http://docs.mongodb.org/manual/reference/command/createIndexes/#dbcmd.createIndexes . Currently mongous has no easy convenience wrapper (like .ensureIndex
or .createIndex
) so you have to do this manually:
$('blog.$cmd').find(1, {
createIndexes: 'posts',
indexes: [{
key: {title: 1},
name: 'blog_post_titles'
}] }, function(result){
console.log(result);
});
Please see the above link for more details on the parameters. What this particular command is doing is creating an index on the 'posts' collection in the 'blog' database, where the key (or field) for the index is 'title' in ascending order (1). We give the index itself a name, called 'blog_post_titles'.
If we want to list what indices we have, we can run this command:
$('blog.$cmd').find(1, { listIndexes: 'posts' }, function(result){
console.log(result);
});
http://docs.mongodb.org/manual/reference/command/listIndexes/#dbcmd.listIndexes
If we want to drop the index we just created, we can do this:
$('blog.$cmd').find(1, {dropIndexes: 'posts', index: "blog_post_titles"}, function(result){
console.log(result)
});
http://docs.mongodb.org/manual/reference/command/dropIndexes/#dbcmd.dropIndexes
Hopefully this satisfies your question - does it? Please let me know. I would love a contribution where you take this ugly code and wrap it into a convenience/utility function (called createIndex and dropIndex or something like that) which makes it easier for developers! It should be super simple.
My final remarks is that I need help and contribution with this, because while I love MongoDB (I've used it for 5 years) I have stopped using it and am building my own database (http://github.com/amark/gun), an open source version of Firebase, But people are still actively using this library, mongous, and I'm sure they'd really appreciate you adding simplicity features to it!
Let me know your thoughts.
Is it posible to create / drop /refresh index?