| Operation description | MongoClient Shell | NodeJs Driver | Java Driver | Python Driver |
|---|---|---|---|---|
| Подключение к базе | $ mongo dbname $ mongo 192.169.0.5/dbname $ mongo 192.169.0.5:9999/dbname $ mongo >use dbname | var MongoClient = require('mongodb').MongoClient;
MongoClient.connect('mongodb://localhost:27017/m101'), function(err, db) {
if(err) throw err;
db
}
| import com.mongodb.DB;
import com.mongodb.MongoClient;
import com.mongodb.MongoClientURI;
final MongoClient client = new MongoClient(new MongoClientURI("mongodb://localhost"));
final DB db = mongoClient.getDB("dbname");
| |
| Получение ссылки на коллекцию | >db.collectionName | var MongoClient = require('mongodb').MongoClient;
MongoClient.connect('mongodb://localhost:27017/m101'), function(err, db) {
if(err) throw err;
var collection = db.collection('collectionName');
}
| import com.mongodb.DB;
import com.mongodb.DBCollection;
final DBCollection collection = db.getCollection("collectionName");
| |
| Выборка | >db.students.find({
$or: [
{ "resume.projects.3.months": {$lte: 3}},
{currentProjects: {$in: ["Pizza Commerce", "AdvNet"]}}
]
})
| var MongoClient = require('mongodb').MongoClient;
MongoClient.connect('mongodb://localhost:27017/m101'), function(err, db) {
if(err) throw err;
/*
следующий подход для варианта, когда есть вероятность,
что полей может быть очень много и нам нужно обеспечить
отпускание потока ноды
*/
db.collection('students').find({
$or: [
{ "resume.projects.3.months": {$lte: 3}},
{currentProjects: {$in: ["Pizza Commerce", "AdvNet"]}}
]
}).each(function(err, doc){
console.log(doc);
});
/*
следующий подход для большинства случаев, где мы
перестраховываемся лимитированием от чрезмерного
количества результатов
*/
db.collection('students').find({
$or: [
{ "resume.projects.3.months": {$lte: 3}},
{currentProjects: {$in: ["Pizza Commerce", "AdvNet"]}}
]
}).sort({name: -1}).limit(5).toArray(function(err, items){
console.log(items);
});
}
| import com.mongodb.BasicDBObject;
import com.mongodb.DBCursor;
import java.util.List;
List<DBobject> posts;
BasicDBObject query = new BasicDBObject("tags", tag);
DBCursor cursor = postsCollection.find(query).sort(new BasicDBObject().append("date", -1)).limit(10);
try {
posts = cursor.toArray();
} finally {
cursor.close();
}
...OR...
/*Можно также поработать с курсором определенное время*/
while (cursor.hasNext()) {
posts.add(cursor.next());
}
| |
| Изменение конкретной записи | >var j = db.students.findOne() >j.name = "Tim" >delete j.surname >db.students.save(j) | |||
| Получение информации о протекании запроса | > db.students.findOne().explain() | var cursor = db.collection('students').findOne({a: 1});
cursor.explain(function(err, explain_output){
if(err) throw err;
console.log(explain_output);
});
| ||
| Явное указание какой именно индекс использовать в запросе | > db.students.findOne({x: 100, y: 200, z: "Some string value"}).hint({x: 1, y:1, z: 1})
| var cursor = db.collection('students').find({a: 1}, {},
{ 'hint': {$natural: 1}}
);
| ||
| Подключение к репликасету | Запустить несколько процессов в данном случае на одном хосте:user@localhost$ mkdir -p /data/rs1 /data/rs2 /data/rs3 user@localhost$ mongod --replSet m101 --logpath "1.log" --dbpath /data/rs1 --port 27017 --oplogSize 64 --fork --smallfiles user@localhost$ mongod --replSet m101 --logpath "2.log" --dbpath /data/rs2 --port 27018 --oplogSize 64 --smallfiles --fork user@localhost$ mongod --replSet m101 --logpath "3.log" --dbpath /data/rs3 --port 27019 --oplogSize 64 --smallfiles --fork Теперь соединить всех в одну репликусет через введение данных в процесс, который будет праймери: $ mongo --port 27018 < echo "config = { _id: "m101", members:[ \
{ _id : 0, host : "localhost:27017", priority:0, slaveDelay:5}, \
{ _id : 1, host : "localhost:27018"},\
{ _id : 2, host : "localhost:27019"} ] \
}; \
rs.initiate(config); \
rs.status(); \
"
Или так:
user@localhost$ mongo --port 27018
> rs.status()
> rs.initiate()
> rs.add("localhost:27017")
> rs.add("localhost:27019")
| var MongoClient = require('mongodb').MongoClient;
MongoClient.connect("mongodb://localhost:30001," +
"localhost:30002," +
"localhost:30003/course", function(err, db) {
...
});
|
среда, 9 июля 2014 г.
Comparison Matrix
Ярлыки:
MongoDB,
MongoDB Java driver,
MongoDB NodeJs driver
Подписаться на:
Комментарии к сообщению (Atom)
Комментариев нет:
Отправить комментарий