MongoDB uses unicode, instead of the coding
for a certain local language, to sort data in this language (i.e. Chinese).
Together with esProc, MongoDB can realize sorting in local language
conveniently (i.e. sort Chinese according to Chinese phonetic alphabet). The
following will teach you the method in detail by taking Chinese as an example.
person - a set in MongoDB - stores names and genders as follows:
>
db.person.find()
{
"_id" : ObjectId("544e4e070f03ad39eb2bf498"),
"name" : "宋江", "gender" : "男"}
{
"_id" : ObjectId("544e4e070f03ad39eb2bf499"),
"name" : "李逵", "gender" : "男"}
{
"_id" : ObjectId("544e4e070f03ad39eb2bf49a"),
"name" : "吴用", "gender" : "男"}
{
"_id" : ObjectId("544e4e070f03ad39eb2bf49b"),
"name" : "晁盖", "gender" : "男"}
{
"_id" : ObjectId("544e4e070f03ad39eb2bf49c"),
"name" : "公孙胜", "gender" : "男" }
{
"_id" : ObjectId("544e4e070f03ad39eb2bf49d"),
"name" : "鲁智深", "gender" : "男" }
{
"_id" : ObjectId("544e4e070f03ad39eb2bf49e"),
"name" : "武松", "gender" : "男"}
{
"_id" : ObjectId("544e4e070f03ad39eb2bf49f"),
"name" : "阮小二", "gender" : "男" }
{
"_id" : ObjectId("544e4e070f03ad39eb2bf4a0"), "name"
: "杨志", "gender" : "男"}
{
"_id" : ObjectId("544e4e070f03ad39eb2bf4a1"),
"name" : "孙二娘", "gender" : "女" }
{
"_id" : ObjectId("544e4e070f03ad39eb2bf4a2"),
"name" : "扈三娘", "gender" : "女" }
{
"_id" : ObjectId("544e4e080f03ad39eb2bf4a3"),
"name" : "燕青", "gender" : "男"}
…
Sort the data using MongoDB's sort function rather than the Chinese
phonetic alphabet:
>
db.person.find({},{"name":1,"gender":1,"_id":0}).sort({"name":1})
{
"name" : "公孙胜", "gender" : "男" }
{
"name" : "吴用", "gender" : "男" }
{
"name" : "孙二娘", "gender" : "女" }
{
"name" : "宋江", "gender" : "男" }
{
"name" : "扈三娘", "gender" : "女" }
{
"name" : "晁盖", "gender" : "男" }
{
"name" : "李逵", "gender" : "男" }
{
"name" : "杨志", "gender" : "男" }
{
"name" : "武松", "gender" : "男" }
{
"name" : "燕青", "gender" : "男" }
{
"name" : "阮小二", "gender" : "男" }
{
"name" : "鲁智深", "gender" : "男" }
…
The esProc script helping with MongoDB computation
is as follows:
A1: Connect to the MongoDB database. The IP and port number
is localhost:27017, the database name
is test and both the user name and
the password are test. If any other
parameters are needed, write them in line with the format mongo://ip:port/db?arg=value&…
A2: Fetch data from the
MongoDB database using find function
to create a cursor. The collection is person. The
filtering criterion is null and the specified keys are name and gender. It can
be seen that this find function is
similar to the find function of
MongoDB. By fetching and processing data in batches, the esProc cursor can
avoid the memory overflow caused by big data importing.
A3: Since the data here
are small, fetch function will fetch
them all at once.
A4: Sort the data by name in ascending order, using sort function. Chinese is used in the data
sorting. For the other localized languages esProc supports, please see below.
The result of operation is:
One thing to note is that esProc doesn't
provide the java driver of MongoDB. To access MongoDB with esProc, the latter
(a driver of 2.12.2 version or above is required, i.e. mongo-java-driver-2.12.2.jar)
should be put into the [esProc installation directory]\common\jdbc beforehand.
The script for computation in MongoDB with the
assistance of esProc is easy to integrate with Java program. By adding another
line of code – A5, which is result A4,
the result in the form of resultset
can be output to Java program. For detailed code, please refer to esProc Tutorial. In the same way, to
access MongoDB by calling esProc code with Java program also requires putting
the java driver of MongoDB into the classpath of Java program.
esProc supports all the following Languages:
ja_JP Japanese Japan
es_PE Spanish Peru
en English
ja_JP_JP Japanese Japan
es_PA Spanish Panama
sr_BA Serbian Bosnia
and Herzegovina
mk Macedonian
es_GT Spanish Guatemala
ar_AE Arabic United
Arab Emirates
no_NO Norwegian
Norway
sq_AL Albanian Albania
bg Bulgarian
ar_IQ Arabic
Iraq
ar_YE Arabic
Yemen
hu Hungarian
pt_PT Portuguese
Portugal
el_CY Greek
Cyprus
ar_QA Arabic
Qatar
mk_MK Macedonian Macedonia
sv Swedish
de_CH German Switzerland
en_US English United
States
fi_FI Finnish Finland
is Icelandic
cs Czech
en_MT English Malta
sl_SI Slovenian Slovenia
sk_SK Slovak Slovakia
it Italian
tr_TR Turkish Turkey
zh Chinese
th Thai
ar_SA Arabic Saudi
Arabia
no Norwegian
en_GB English United
Kingdom
sr_CS Serbian Serbia
and Montenegro
lt Lithuanian
ro Romanian
en_NZ English New
Zealand
no_NO_NY Norwegian Norway Nynorsk
lt_LT Lithuanian Lithuania
es_NI Spanish Nicaragua
nl Dutch
ga_IE Irish Ireland
fr_BE French Belgium
es_ES Spanish Spain
ar_LB Arabic Lebanon
ko Korean
fr_CA French Canada
et_EE Estonian Estonia
ar_KW Arabic Kuwait
sr_RS Serbian Serbia
es_US Spanish United
States
es_MX Spanish Mexico
ar_SD Arabic Sudan
in_ID Indonesian Indonesia
ru Russian
lv Latvian
es_UY Spanish Uruguay
lv_LV Latvian Latvia
iw Hebrew
pt_BR Portuguese Brazil
ar_SY Arabic Syria
hr Croatian
et Estonian
es_DO Spanish Dominican
Republic
fr_CH French Switzerland
hi_IN Hindi India
es_VE Spanish Venezuela
ar_BH Arabic Bahrain
en_PH English Philippines
ar_TN Arabic Tunisia
fi Finnish
de_AT German Austria
es Spanish
nl_NL Dutch Netherlands
es_EC Spanish Ecuador
zh_TW Chinese Taiwan
ar_JO Arabic Jordan
be Belarusian
is_IS Icelandic Iceland
es_CO Spanish Colombia
es_CR Spanish Costa
Rica
es_CL Spanish Chile
ar_EG Arabic Egypt
en_ZA English South
Africa
th_TH Thai Thailand
el_GR Greek Greece
it_IT Italian Italy
ca Catalan
hu_HU Hungarian Hungary
fr French
en_IE English Ireland
uk_UA Ukrainian Ukraine
pl_PL Polish Poland
fr_LU French Luxembourg
nl_BE Dutch Belgium
en_IN English India
ca_ES Catalan Spain
ar_MA Arabic Morocco
es_BO Spanish Bolivia
en_AU English Australia
sr Serbian
zh_SG Chinese Singapore
pt Portuguese
uk Ukrainian
es_SV Spanish El
Salvador
ru_RU Russian Russia
ko_KR Korean South
Korea
vi Vietnamese
ar_DZ Arabic Algeria
vi_VN Vietnamese Vietnam
sr_ME Serbian Montenegro
sq Albanian
ar_LY Arabic Libya
ar Arabic
zh_CN Chinese China
be_BY Belarusian Belarus
zh_HK Chinese Hong
Kong
ja Japanese
iw_IL Hebrew Israel
bg_BG Bulgarian Bulgaria
in Indonesian
mt_MT Maltese Malta
es_PY Spanish Paraguay
sl Slovenian
fr_FR French France
cs_CZ Czech Czech
Republic
it_CH Italian Switzerland
ro_RO Romanian Romania
es_PR Spanish Puerto
Rico
en_CA English Canada
de_DE German Germany
ga Irish
de_LU German Luxembourg
de German
es_AR Spanish Argentina
sk Slovak
ms_MY Malay Malaysia
hr_HR Croatian Croatia
en_SG English Singapore
da Danish
mt Maltese
pl Polish
ar_OM Arabic Oman
tr Turkish
th_TH_TH Thai Thailand TH
el Greek
ms Malay
sv_SE Swedish Sweden
da_DK Danish Denmark
es_HN Spanish Honduras