Äú¿ÉÒÔ¾èÖú£¬Ö§³ÖÎÒÃǵĹ«ÒæÊÂÒµ¡£

1Ôª 10Ôª 50Ôª





ÈÏÖ¤Â룺  ÑéÖ¤Âë,¿´²»Çå³þ?Çëµã»÷Ë¢ÐÂÑéÖ¤Âë ±ØÌî



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Modeler   Code  
»áÔ±   
 
   
 
 
     
   
 ¶©ÔÄ
  ¾èÖú
Ö§³Öº£Á¿Êý¾ÝµÄ MongoDB NoSQL
 
»ðÁú¹ûÈí¼þ    ·¢²¼ÓÚ 2014-09-29
  1384  次浏览      31
 

¹ØÓÚÕâ¸öËٲ鿨

MongoDBÊÇÒ»¸öÎĵµÐÍÊý¾Ý¿â£¬Ëü¿ÉÒÔ·½±ãµÄÓ¦ÓÃÓÚ´ó¶àÊýÓïÑÔ¡£Õâ¸öСÇåµ¥ÁгöÁËMongoDB¾­³£Ê¹ÓúÍÈÝÒ×Íü¼ÇµÄһЩ²Ù×÷£¬ÃüÁîºÍ¼¼Êõ¡£

ÅäÖÃÑ¡Ïî

°²×°Ñ¡Ïî

Æô¶¯MongoDBµÄÑ¡Ïî¿ÉÒÔͨ¹ýÃüÁîÐлòÕßÅäÖÃÎļþÉèÖã¬Á½ÕßµÄÓï·¨ÉÔ΢Óе㲻ͬ£¬ÕâÀïÓÐÒ»¸öÈýÖÖÑ¡ÏîµÄÉèÖÃÀý×Ó:

ÔÚmongodÏÂÔËÐÐ--help¿ÉÒÔÁгöËùÓеIJÙ×÷Ñ¡Ïµ«ÊÇÕâÀïÎÒÃÇÁгöÁËһЩ×î³£ÓõÄ:

Èç¹ûÏ밲ȫµÄÆô¶¯mongod£¬¾ÍҪʹÓÃnohttpinterfaceºÍbind_ip²Ù×÷Ñ¡Ïȷ¶¨ÍâÍø²»ÄÜÖ±½Ó·ÃÎÊ¡£ÓÈÆäÈ·±£ÄãûÓÐÆäÓàµÄÑ¡ÏîÆô¶¯£¬MongoDBÐèÒªÒÔÏÂÍøÂç»·¾³¿ÉÒÔ·ÃÎÊ:

1.µ¥¸ö·þÎñÆ÷ - ¿Í»§¶Ë³ÌÐò¿ÉÒÔ»ñÈ¡·ÃÎÊÁ¬½Ó

2.¸±±¾¼¯ - ÈκγÉÔ±¼¯Äܹ»·ÃÎÊ£¬°üÀ¨×Ô¼º£»¿Í»§¶ËÄܹ»·ÃÎÊÈκÎÒ»¸ö³ÉÔ±¼¯£¬²¢ÇÒ¿É·ÃÎʵijÉÔ±¼¯¶¼Äܹ»³ÉΪÖ÷½Úµã£¨»îÔ¾½Úµã£©.

3.·ÖƬ- mongos½ø³Ì±ØÐëÄܹ»Á¬½Óµ½ÅäÖõķþÎñÆ÷ºÍ·ÖƬ£¬·ÖƬ±ØÐëÄܹ»±Ë´ËÁ¬½Ó¡£¿Í»§¶Ë³ÌÐò±ØÐëÄܹ»Á¬½Óµ½mongos½ø³Ì¡£ÅäÖ÷þÎñÆ÷û±ØÒª±Ë´ËÌṩ·ÃÎÊÁ¬½ÓµÄÖ§³Ö¡£

ËùÓеÄÁ¬½Ó¶¼ÊÇͨ¹ýtcp½¨Á¢µÄ.

²é¿´ÅäÖÃ

Èç¹ûÄã6¸öÔÂǰÆô¶¯mongodʱ×öÁËÒ»¶ÑÅäÖã¬ÄÇôÏÖÔÚÄãÈçºÎÖªµÀ×öÁËʲôÅäÖÃÄØ£¿ÕâÀïÌṩÁËÒ»¸öshellСÖúÊÖ:

> db.serverCmdLineOpts()
{ "argv" : [ "./mongod", "--port", "30000" ], "parsed" : { },
"ok" : 1 }

½âÎöºóµÄ×Ö¶ÎÊÇ´ÓÅäÖÃÎļþ¶ÁÈ¡µÄһЩ²ÎÊýÁбí.

ʹÓÃshell

Shell°ïÖú

µ±ÄãÍü¼ÇÒ»¸öÃüÁîʱ£¬mongodbÌṩÁËÐí¶à¹¦ÄܰïÖúÄã:

> // basic help
> help
db.help() help on db methods
db.mycoll.help() help on collection methods
sh.help() sharding helpers
rs.help() replica set helpers
help admin administrative help
help connect connecting to a db help
...

×¢Òâ¶ÔÓÚÊý¾Ý¿â£¬¼¯ºÏ£¬¸±±¾¼¯£¬·ÖƬ£¬¹ÜÀíÔ±µÈÌṩÁ˵¥¶ÀÁ˰ïÖú¹¦ÄÜ¡£ÕâÀïûÓÐÒ»Ò»Áгö£¬ÏñÓαêµÄ°ïÖú¹¦ÄÜÈçÏÂ:

> // list common cursor functions
> db.foo.find().help()

Äã¿ÉÒÔʹÓÃÕâ¸ö¹¦ÄܺÍСÖúÊÖ×÷Ϊһ¸öÄÚÖõı¸ÍüÇåµ¥¡£

²é¿´·½·¨µÄ¶¨Òå

Èç¹ûÄã²»ÖªµÀÒ»¸ö·½·¨ÊǸÉʲôÓõģ¬Äã¿ÉÒÔÔÚshellÖÐͨ¹ýÈ¥³ýÀ¨ºÅµÄ·½Ê½ÔËÐÐËü£¬²é¿´ËüµÄÔ´Âë:

> // run the function
> db.serverCmdLineOpts()
{ "argv" : [ "./mongod" ], "parsed" : { }, "ok" : 1 }
> // see its source
> db.serverCmdLineOpts
function () {
return this._adminCommand("getCmdLineOpts");
}

Õâ¿ÉÒÔ°ïÖúÎÒÃÇ»ñϤÕâ¸ö·½·¨ÐèҪʲô²ÎÊýºÍÅ׳öʲô´íÎó£¬ÒÔ¼°ÈçºÎÔÚÆäËûÓïÑÔÖÐʹÓá£

ʹÓñ༭¹¦ÄÜ

shellÃüÁîÏÞÖÆ¶àÐеÄÖ§³Ö£¬Òò´ËÔÚÀïÃæ±àд³ÌÐòºÜ·Ñ¾¢£¬shell±à¼­Ð¡ÖúÊÖÈÃËü¸ü¼Ó¼òµ¥£¬´ò¿ªÒ»¸öÎı¾±à¼­Æ÷£¬±à¼­Ò»¸ö±äÁ¿£¬ÀýÈç:

> x = function() { /* some function we're going to fill in */ }
> edit x

Ôڱ༭Æ÷ÐÞ¸ÄÒ»¸ö±äÁ¿±£´æÍ˳ö¡£Õâ¸ö±äÁ¿¾ÍÔÚshellÀïÃæ±»É趨ºÃÁË¡£

²»¹ÜÊDZ༭Æ÷µÄ»·¾³±äÁ¿»òÕßMongoDB shellµÄ±äÁ¿±à¼­»·¾³£¬¶¼±ØÐëÉèÖÃʹÓÃeditģʽ¡£Äã¿ÉÒÔÔÚMongoDB shellÖÐͨ¹ýÈçÏÂÃüÁîÅäÖÃ:

> EDITOR="/usr/bin/emacs"

±à¼­Ä£Ê½ÔÚJavaScript½Å±¾ÏÂÊÇÎÞ·¨Ê¹Óõģ¬Ö»ÄÜÔÚ½»»¥µÄshellÖÐʹÓá£

.mongorc.js

Èç¹ûÄãµÄÖ÷Ŀ¼ÏÂÓиö.mongorc.jsÎļþ£¬ÄÇôµ±ÄãÆô¶¯shellʱËû¾Í»á×Ô¶¯ÔËÐС£Ê¹ÓÃËü¿ÉÒÔ³õʼ»¯ÈκÎÄã¾­³£Ê¹ÓõÄhelper·½·¨ºÍÄã²»ÏëÒâÍâ²Ù×÷µÄɾ³ý·½·¨.

±ÈÈ磬Äã²»ÏëʹÓÃĬÈϵÄdropDatabase()·½·¨ÁË£¬Äã¿ÉÒÔÔÚ.mongorc.jsÎļþÖÐÌí¼ÓÏÂÃæµÄÃüÁî:

DB.prototype.dropDatabase = function() {
print("No dropping DBs!");
}
db.dropDatabase = DB.prototype.dropDatabase;

ÉÏÃæµÄÀý×ӸıäÁËdropDatabase() helper·½·¨£¬Ê¹ËûÖ»´òÓ¡³öÒ»ÐÐÐÅÏ¢£¬¶øÃ»ÓÐÕæÕýµÄɾ³ýÊý¾Ý¿â.

×¢ÒâÕâ¸ö¼¼Çɲ»ÊÇÒ»¸ö°²È«ÊֶΣ¬¹ÌÖ´µÄÓû§ÈÔÈ»¿ÉÒÔÔÚ²»Ê¹ÓÃhelperǰÌáÏÂɾ³ýÊý¾Ý¿â¡£È»¶ø£¬ÒƳýΣÏÕµÄadminȨÏÞÃüÁîÒ²¿ÉÒÔ°ïÖú×èÖ¹¡°´óµÌµÄ±¼À£¡±.

¼¸¸ö½¨ÒéÔÚ.mongorc.jsÖÐʹÓÃhelperÃüÁîÊ±ÒÆ³ýµÄ:

1.DB.prototype.shutdownServer

2.DBCollection.prototype.drop

3.DBCollection.prototype.ensureIndex

4.DBCollection.prototype.reIndex

5.DBCollection.prototype.dropIndexes

¸Ä±äÌáʾ

shellµÄÌáʾ¿ÉÒÔͨ¹ýÒ»¸ö·½·¨ÉèÖÃÌáʾ±äÁ¿µÄ·½Ê½À´¸Ä±ä:

prompt = function() {
try {
db.getLastError();
}
catch (e) {
print(e);
}
return (new Date())+"$ ";
}

Èç¹ûÄãÉèÖÃÁËÌáʾ£¬Ã¿´ÎÖ´ÐÐʱ¶¼»áÖØÐ·µ»ØÌáʾÐÅÏ¢£¨ÉÏÃæµÄÀý×Ó½«·µ»Ø×îºóÖ´ÐеÄÐÅÏ¢£©¡£

³¢ÊÔÔÚÄãµÄÌáʾÀïÃæµ÷ÓÃdb.getLastError()·½·¨£¬Õ⽫°üº¬Ä¬ÈϵÄÌáʾºÍ·þÎñÆ÷ÖØÐÂÁ¬½ÓÒÔ¼°·µ»ØµÄ´íÎóÐÅÏ¢.

ͬʱ£¬°ÑÈκοÉÄܳöÏÖÒì³£µÄÓÃtry/catch°ü¹üÆðÀ´£¬ÄÇÊǷdz£ÄÕÈ˵쬵±ÄãµÄÌáʾ±ä³ÉÁËÒ»¸öÒì³£ÐÅÏ¢!

²Ù×÷Õï¶Ï

²é¿´ºÍÖÕÖ¹²Ù×÷

Äã¿ÉÒÔͨ¹ýcurrentOp²é¿´µ±Ç°²Ù×÷״̬:

> db.currentOp()
{
"inprog" : [
{
"opid" : 123,
"active" : false,
"locktype" : "write",
"waitingForLock" : false,
"secs_running" : 200,
"op" : "query",
"ns" : "foo.bar",
"query" : {
}
...
},
...
]
}

ʹÓÃÉÏÃæµÄopid×ֶΣ¬Äã¿ÉÒÔÖÕÖ¹Õâ¸ö²Ù×÷:

> db.killOp(123)

²»ÊÇËùÓеIJÙ×÷¶¼Äܱ»ÖÕÖ¹»òÕßÁ¢¿ÌÖÕÖ¹£¬Í¨³££¬²Ù×÷²»»á±»ÖÕÖ¹£¬Ö±µ½ËûÃÇ»ñÈ¡µ½Ëø.

active×ֶαíÃ÷²Ù×÷µ±Ç°ÊÇ·ñÔÚÔËÐУ¬Èç¹ûÒ»¸ö²Ù×÷ûÓÐÔËÐУ¬Í¨³£ÊÇҪôûÆô¶¯£¬ÒªÃ´ÔڵȴýËø£¬ÒªÃ´Ö´ÐÐÁËÆäËû²Ù×÷¡£Í¨¹ýnumYieldsÄã¿ÉÒԲ鿴²Ù×÷Ö´ÐеÄʱ¼ä.

Ë÷ÒýʹÓÃ

ʹÓÃexplain()À´²é¿´µ±Ç°²éѯ²Ù×÷ʹÓÃÁËÄĸöË÷Òý.

> db.foo.find(criteria).explain()
{
"cursor" : "BasicCursor",
"isMultiKey" : false,
"n" : 2,
"nscannedObjects" : 2,
"nscanned" : 2,
"nscannedObjectsAllPlans" : 2,
"nscannedAllPlans" : 2,
"scanAndOrder" : false,
"indexOnly" : false,
"nYields" : 0,
"nChunkSkips" : 0,
"millis" : 0,
"indexBounds" : {

},
"server" : "ubuntu:27017"
}

explain()Êä³öÖÐÓм¸¸öÖØÒªµÄ×Ö¶Î:

1.n: ·µ»Ø¼Ç¼ÐÐÊý.

2.nscanned: ʹÓÃË÷Òý¶ÁÈ¡µÄ¼Ç¼ÊýÁ¿.

3.nscannedObjects: ±»É¨ÃèµÄÎĵµÊýÁ¿.

4.indexOnly: Èç¹û²éѯûÓÐʹÓü¯ºÏ±¾Éí.

5.nYields: ²éѯ¶ÁÈ¡ËøµÄÊÍ·Åʱ¼äºÍµÈ´ýÏ´βÙ×÷ʱ¼ä.

6.indexBounds: µ±Ê¹ÓÃË÷Òýʱ£¬ÏÔʾµÄË÷ÒýɨÃ跶Χ.

ÓαêÀàÐÍ

Ò»¸ö±éÀúÓα꣨BasicCursor£©Òâζ×ÅûÓÐʹÓÃË÷Òý£»Ò»¸öBÊ÷Óαê(BtreeCursor)Òâζ×ÅʹÓÃÁËÒ»¸ö³£ÓõÄË÷Òý£»Æ½ÐÐÓα걻ÓÃÓÚ·ÖÆ¬£»¶þά¿Õ¼äË÷Òý£¨geospatial indexes£©Ê¹ÓÃËûÃÇ×Ô¼ºÌØÊâµÄÓαꡣ

Ò»µ©Ò»¸öÊý×é±»Ë÷Òý£¬ÄÇôË÷ÒýÉϾͻáÉ趨һ¸ö¡°multikey¡±±ê¼Ç£¬Õâ¾ÍÊǶÔÉÏÃæisMultiKey×ֶεĽâÊÍ¡£Õâ¸ö±ê¼ÇÔÚË÷ÒýÉúÃüÖÜÆÚÄÚÒ»Ö±±£´æ£¬³ý·ÇÄãÈ¥µôÁËÊý×éµÄË÷Òý¡£

Èç¹ûÓ¦ÓÃË÷Òý×ö²éѯµÄ»°£¬explainÊä³öµÄÐÅÏ¢Àォ°üº¬Ë÷Òý·¶Î§×ֶΣ¬ËüÃèÊöÁËË÷Òý±éÀúµ½µÄÄDz¿·Ö¼Ç¼¡£±ÈÈ磬Èç¹ûÄãÖªµÀÄãµÄÎĵµÀïÃæÓиöage×ֶΣ¬²¢ÇÒÄêÁäÔÚ0-120Ö®¼ä¾ùÔÈ·Ö²¼£¬Ë÷Òý·¶Î§´Ó3-5£¬Äã¿ÉÒÔ¿´µ½Ë÷ÒýÖ»ÐèɨÃèһС²¿·ÖÊý¾Ý¾ÍÄÜÂú×ãÄãµÄ²éѯÐèÒª¡£

°µÊ¾£¨Hinting£©

ʹÓÃhint()ÄÜÈòéÑ¯Ç¿ÖÆÊ¹ÓÃÒ»¸öÌØÊâµÄË÷Òý:

> db.foo.find().hint({x:1})

Õâ¸ö°µÊ¾±ØÐëºÍÄãÏëʹÓõĵÄË÷ÒýkeyÏàÆ¥Å䣬Äã¿ÉÒÔͨ¹ýÔËÐÐÏÂÃæÃüÁî²é¿´¿ÉÓõÄË÷Òý:

> db.foo.getIndexes()

Ò»°ãÀ´Ëµ£¬Äã¿ÉÒÔ´´½¨Ò»¸öË÷ÒýÓÃÓÚ²éѯ¡£Èç¹ûÄãÓÐÒ»¸ö²éѯºÍÅÅÐò£¬½¨Ë÷Òý×îºÏÊʵÄ×Ö¶ÎÈ¡¾öÓÚÄãµÄ²éѯ¡£Èç¹û²éѯһ¸öµ¥Ò»µÄÖµ£¨È磺{x:y}£©£¬Ë÷ÒýÓ¦¸ÃÕâÑù½¨{queryField: 1, sortField: 1}¡£Èç¹û²éѯµÄÊÇÒ»¸ö·¶Î§»òÕß¼¯ºÏ£¬²ÉÓÃÕâÑùµÄ·½Ê½½¨Ë÷Òý¿ÉÄܸü¸ßЧ£º{sortField: 1, queryField: 1}¡£Èç¹ûÄãÊÇÓÃÕâ¸öË÷Òý£¬MongoDB±ØÐëɨÃèËùÓеÄË÷Òý²éÕÒ½á¹û¼¯£¬µ«ÊÇËü¿ÉÒÔÔÚ²»Ê¹ÓÃÄÚ´æÅÅÐòµÄÇé¿öÏ·µ»ØÓÐÐòµÄ½á¹û¡£

ϵͳÐÔÄÜ·ÖÎö

Äã¿ÉÒÔ´ò¿ªÏµÍ³·ÖÎö£¬¿´¿´Êý¾Ý¿âµÄ²Ù×÷ÐÅÏ¢¡£ËäÈ»ÐÔÄÜÉÏ»áÓÐËðʧ£¬µ«¿ÉÒÔ°ïÖúÎÒÃDZÜÃâÂý²éѯ¡£

> db.setProfilingLevel(2) // profile all operations
> db.setProfilingLevel(1) // profile operations that take longer
than 100ms
> db.setProfilingLevel(1, 500) // profile operations that take
longer than 500ms
> db.setProfilingLevel(0) // turn off profiling
> db.getProfilingLevel(1) // see current profiling setting

ÐÔÄÜÌõÄ¿±£´æÔÚ¿ªÆôÐÔÄÜ·ÖÎöµÄÊý¾Ý¿âÖÐÃûΪ system.profile µÄ¼¯ºÏ¡£¿ÉÒÔÕë¶Ôµ¥¸öÊý¾Ý¿â¿ªÆôºÍ¹Ø±ÕÐÔÄÜ·ÖÎö¡£

¸±±¾¼¯

ÒªÕÒµ½Ñӳٵĸ´ÖÆ£¬Á¬½Óµ½Ò»¸ö±¸½Úµã²¢ÔËÐÐÕâ¸öº¯Êý£º

> db.printReplicationStatus()
configured oplog size: 2000MB
log length start to end: 23091secs (6.4hrs)
oplog first event time: Fri Aug 10 2012 04:33:03 GMT+0200 (CEST)
oplog last event time: Mon Aug 20 2012 10:56:51 GMT+0200 (CEST)
now: Mon Aug 20 2012 10:56:51 GMT+0200 (CEST)

Òª²é¿´Ä³¸ö³ÉÔ±¶Ô¼¯ºÏµÄÐÔÄÜ×´¿ö£¬Á¬½Óµ½Õâ¸ö³ÉÔ±£¬²¢ÔËÐУº

> rs.status()

´ËÃüÁî»á¸æËßÄãÆäËû³ÉÔ±Ö®ÓÚËüµÄ״̬ºÍµØÎ»¡£

ÔÚÒ»¸ö±¸½ÚµãÉÏÔËÐÐ rs.status() ½«¸æËßÄ㱸½ÚµãÊÇ´Ó syncingTo×Ö¶ÎÖÐÄĸöÖÐͬ²½Êý¾ÝµÄ¡£

·ÖƬ

Òª²é¿´Èº¼¯µÄÔªÊý¾Ý£¨·ÖƬ£¬Êý¾Ý¿â£¬Îļþ£¬Êý¾ÝµÈ£©£¬ÇëÔËÐÐÏÂÃæµÄº¯Êý£º

> db.printShardingStatus()
> db.printShardingStatus(true) // show all chunks

ÄúÒ²¿ÉÒÔÁ¬½Óµ½ Mongos £¬Ê¹Óá°use config¡±²é¿´·ÖƬ£¬Êý¾Ý¿â£¬¼¯ºÏ£¬»ò¿éµÄÊý¾Ý£¬È»ºó²éѯÏà¹ØµÄ¼¯ºÏ¡£

> use config
switched to db config
> show collections
chunks
databases
lockpings
locks
mongos
settings
shards
system.indexes
version

ÓÀÔ¶¶¼Á¬½Óµ½ mongos »ñÈ¡·ÖƬÐÅÏ¢¡£ÓÀÔ¶²»ÒªÖ±½ÓÁ¬½ÓÅäÖ÷þÎñÆ÷¡£ÓÀÔ¶²»ÒªÖ±½ÓдÈëÅäÖ÷þÎñÆ÷¡£¡£ÓÀԶʹÓÃ·ÖÆ¬ÃüÁîºÍ°ïÖú¡£

ÔÚά»¤Ö®ºó£¬ÓÐʱʵ¼ÊÉÏûÓÐʵʩά»¤µÄ mongos ½ø³ÌµÄÅäÖð汾ºÅ½«²»»á¸üС£ÎÞÂÛÊǻص¯·þÎñ»¹ÊÇÔËÐÐ flushRouterConfig ÃüÁî¶¼ÄÜ¿ìËÙ½â¾öÎÊÌâ¡£

> use admin
> db.runCommand({flushRouterConfig:1})

ͨ³£Õâ¸öÎÊÌ⽫±íÏÖΪ setShardVersion ʧ°ÜµÄ´íÎó¡£

ÎÞÐèµ£ÐÄÈÕÖ¾ÖÐµÄ setShardVersion ´íÎ󣬵«ËüÃDz»Ó¦¸Ã³öÏÖÔÚÄúµÄÓ¦ÓóÌÐòÖУ¨³ý·Ç mongos ÎÞ·¨Á¬½Óµ½ÈκÎÅäÖ÷þÎñÆ÷£¬·ñÔòÄã²»Ó¦¸ÃµÃµ½´íÎ󣩡£D

ÒªÌí¼ÓÐ嵀ᅮ¬£¬ÔËÐУº

> db.addShard("rsName/seed1,seed2,seed3")

ÒªÔÚÊý¾Ý¿âÉÏÔËÓÃ·ÖÆ¬£¬ÔËÐУº

> db.adminCommand({enableSharding: true})

ÒªÔÚ¼¯ºÏÉÏÔËÓÃ·ÖÆ¬£¬ÔËÐУº

> db.adminCommand({shardCollection: "dbName.collName",
unique: true, key: {fieldName: 1}})

¼È²»Ó¦¸ÃÒѾ­´æÔÚ dbName.collName£¬Ò²²»Ó¦¸ÃÒѾ­Ë÷ÒýfieldName(·ÖƬ¹Ø¼ü×Ö)¡£Èç¹ûÄãÔÚʹÓÃΨһ·ÖƬ¹Ø¼ü×Ö£¬Ëü±ØÐëÊÇΨһË÷ÒýµÄ¡£

ÔÚ¼¯ÈºÖУ¬Èç¹ûÄã²»ÊÇÔÚ _id ÉÏ·ÖÆ¬£¬_id ÎÞÐèΨһ¡£²»¹ÜÔõÑù£¬ËüÃǶ¼ÔÚ¶ÀÁ¢µÄ·ÖƬÉÏ£¨¾ÍÊÇ˵£¬Äã¿ÉÒÔÔÚ shard1 ÉÏÓÐÒ»¸ö_id:123£¬ÔÚ shard2 ÉúÒ²ÓÐÒ»¸ö_id:123£¬µ«ËüÃDz»ÄÜͬʱ´æÔÚÓÚ shard1ÖУ©¡£ÎļþÍùÍùÔÚ·ÖÆ¬¼äÒÆ¶¯£¬Èç¹ûÊÇ×Ô¼ºÉú³ÉµÄ_id£¬ÄãÐèҪȷ±£ÄãµÄ_idΨһ¡£Èç¹ûÄãÓõÄÊÇObject_Id ¾Í²»»á³öÎÊÌâ¡£

Òª¹Ø±Õ¾ùºâÆ÷£¬Í¨¹ýµÄ mongos ¸üРconfig.settings ¼¯ºÏ£º

> sh.setBalancerState(false)

Òª»Ö¸´£¬ÔòʹÓÃͬÑùµÄÃüÁ´«µÝÒ»¸ö True¡£

Mongo¼à¿Ø·þÎñ (MMS)

MMS ÊÇÒ»ÖÖÃâ·ÑµÄ¡¢ÒײÙ×÷µÄ¼à¿Ø MongoDB µÄ·½Ê½¡£ÒªÊ¹ÓÃËü£¬ÏÈÔÚ http://mms.10gen.com. ´´½¨Ò»¸öÕ˺š£

²é¿´ http://mms.10gen.com/help ÒÔ»ñµÃ¸ü¶àµÄÎĵµ¡£

   
1384 ´Îä¯ÀÀ       31
Ïà¹ØÎÄÕÂ

»ùÓÚEAµÄÊý¾Ý¿â½¨Ä£
Êý¾ÝÁ÷½¨Ä££¨EAÖ¸ÄÏ£©
¡°Êý¾Ýºþ¡±£º¸ÅÄî¡¢ÌØÕ÷¡¢¼Ü¹¹Óë°¸Àý
ÔÚÏßÉ̳ÇÊý¾Ý¿âϵͳÉè¼Æ ˼·+Ч¹û
 
Ïà¹ØÎĵµ

GreenplumÊý¾Ý¿â»ù´¡Åàѵ
MySQL5.1ÐÔÄÜÓÅ»¯·½°¸
ijµçÉÌÊý¾ÝÖÐ̨¼Ü¹¹Êµ¼ù
MySQL¸ßÀ©Õ¹¼Ü¹¹Éè¼Æ
Ïà¹Ø¿Î³Ì

Êý¾ÝÖÎÀí¡¢Êý¾Ý¼Ü¹¹¼°Êý¾Ý±ê×¼
MongoDBʵս¿Î³Ì
²¢·¢¡¢´óÈÝÁ¿¡¢¸ßÐÔÄÜÊý¾Ý¿âÉè¼ÆÓëÓÅ»¯
PostgreSQLÊý¾Ý¿âʵսÅàѵ
×îл¼Æ»®
DeepSeekÔÚÈí¼þ²âÊÔÓ¦ÓÃʵ¼ù 4-12[ÔÚÏß]
DeepSeek´óÄ£ÐÍÓ¦Óÿª·¢Êµ¼ù 4-19[ÔÚÏß]
UAF¼Ü¹¹ÌåϵÓëʵ¼ù 4-11[±±¾©]
AIÖÇÄÜ»¯Èí¼þ²âÊÔ·½·¨Óëʵ¼ù 5-23[ÉϺ£]
»ùÓÚ UML ºÍEA½øÐзÖÎöÉè¼Æ 4-26[±±¾©]
ÒµÎñ¼Ü¹¹Éè¼ÆÓ뽨ģ 4-18[±±¾©]

MySQLË÷Òý±³ºóµÄÊý¾Ý½á¹¹
MySQLÐÔÄܵ÷ÓÅÓë¼Ü¹¹Éè¼Æ
SQL ServerÊý¾Ý¿â±¸·ÝÓë»Ö¸´
ÈÃÊý¾Ý¿â·ÉÆðÀ´ 10´óDB2ÓÅ»¯
oracleµÄÁÙʱ±í¿Õ¼äдÂú´ÅÅÌ
Êý¾Ý¿âµÄ¿çƽ̨Éè¼Æ


²¢·¢¡¢´óÈÝÁ¿¡¢¸ßÐÔÄÜÊý¾Ý¿â
¸ß¼¶Êý¾Ý¿â¼Ü¹¹Éè¼ÆÊ¦
HadoopÔ­ÀíÓëʵ¼ù
Oracle Êý¾Ý²Ö¿â
Êý¾Ý²Ö¿âºÍÊý¾ÝÍÚ¾ò
OracleÊý¾Ý¿â¿ª·¢Óë¹ÜÀí


GE Çø¿éÁ´¼¼ÊõÓëʵÏÖÅàѵ
º½Ìì¿Æ¹¤Ä³×Ó¹«Ë¾ Nodejs¸ß¼¶Ó¦Óÿª·¢
ÖÐÊ¢Òæ»ª ׿Խ¹ÜÀíÕß±ØÐë¾ß±¸µÄÎåÏîÄÜÁ¦
ijÐÅÏ¢¼¼Êõ¹«Ë¾ PythonÅàѵ
ij²©²ÊITϵͳ³§ÉÌ Ò×ÓÃÐÔ²âÊÔÓëÆÀ¹À
ÖйúÓÊ´¢ÒøÐÐ ²âÊÔ³ÉÊì¶ÈÄ£Ðͼ¯³É(TMMI)
ÖÐÎïÔº ²úÆ·¾­ÀíÓë²úÆ·¹ÜÀí