所有項目

2011年12月15日 星期四

mongodb find() 基礎

find方法
db.collection_name.find();

查询所有的结果:
select * from users;
db.users.find();
指定返回那些列(键):
select name, skills from users;
db.users.find({}, {'name' : 1, 'skills' : 1});
补充说明: 第一个{} 放where条件 第二个{} 指定那些列显示和不显示 (0表示不显示 1表示显示)
where条件:
1.简单的等于:
select name, age, skills from users where name = 'hurry';
db.users.find({'name' : 'hurry'},{'name' : 1, 'age' : 1, 'skills' : 1});
2.使用and
select name, age, skills from users where name = 'hurry' and age = 18;
db.users.find({'name' : 'hurry', 'age' : 18},{'name' : 1, 'age' : 1, 'skills' : 1});
3.使用or
select name, age, skills from users where name = 'hurry' or age = 18;
db.users.find({ '$or' : [{'name' : 'hurry'}, {'age' : 18}] },{'name' : 1, 'age' : 1, 'skills' : 1});
4.<, <=, >, >= ($lt, $lte, $gt, $gte )
select * from users where age >= 20 and age <= 30;
db.users.find({'age' : {'$gte' : 20, '$lte' : 30}});
5.使用in, not in ($in, $nin)
select * from users where age in (10, 22, 26);
db.users.find({'age' : {'$in' : [10, 22, 26]}});
6.匹配null
select * from users where age is null;
db.users.find({'age' : null);
7.like (mongoDB 支持正则表达式)
select * from users where name like "%hurry%";
db.users.find({name:/hurry/}); 
select * from users where name like "hurry%";
db.users.find({name:/^hurry/}); 
8.使用distinct
select distinct (name) from users;
db.users.distinct('name');
9.使用count
select count(*) from users;
db.users.count();

10.数组查询 (mongoDB自己特有的)
如果skills是 ['java','python']
db.users.find({'skills' : 'java'}); 该语句可以匹配成功
$all
db.users.find({'skills' : {'$all' : ['java','python']}}) skills中必须同时包含java 和 python 
$size
db.users.find({'skills' : {'$size' : 2}}) 遗憾的是$size不能与$lt等组合使用
$slice
db.users.find({'skills' : {'$slice : [1,1]}})
两个参数分别是偏移量和返回的数量
11.查询内嵌文档 

12.强大的$where查询
db.foo.find();                   
{ "_id" : ObjectId("4e17ce0ac39f1afe0ba78ce4"), "a" : 1, "b" : 3, "c" : 10 }
{ "_id" : ObjectId("4e17ce13c39f1afe0ba78ce5"), "a" : 1, "b" : 6, "c" : 6 }
如果要查询 b = c 的文档怎么办?
> db.foo.find({"$where":function(){
    for(var current in this){
        for(var other in this){
            if(current != other && this[current] == this[other]){
                return true;    
            }
        }
    }
    return false;
}});

{ "_id" : ObjectId("4e17ce13c39f1afe0ba78ce5"), "a" : 1, "b" : 6, "c" : 6 }




資料來源:http://www.cnblogs.com/ITAres/archive/2011/07/13/2105440.html

2011年9月15日 星期四

開啟多個msn

[執行]
輸入 regedit 
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Live\Messenger,右邊區塊點選"新增"
→建立一個"DWORD(32位元)值"並命名為"MultipleInstances"
→"MultipleInstances"這個原來的"0"改為"1"
→msn重新啟動就可以開多個了。

2011年7月17日 星期日

eclipse 3.7+apache tomcat 7改port

我自己設定是將 apache tomcat 跟  eclipse兩個地方設定。
因為我8080 port 給 netbeans 佔用了。設定非常簡單   只要將 tomcat跟eclipse同時設定相同的 就可。


2011年5月31日 星期二

5月22號上課,243~260。

範圍:No.243 ~ No.260
No.243(拖拉題)

No.244(拖拉題)

存取修飾元


class
package
子類別
不同package
Private
ok
no
no
no
Default
ok
ok
no
no
Protected
ok
ok
ok
no
Public
ok
ok
ok
ok

2011年5月28日 星期六

排序的方法

第一個

import java.util.*;
public class PQ {
    public static void main(String[] args){
        PriorityQueue<String> pq= new PriorityQueue<String>();
        pq.add("carrot");
        pq.add("apple");
        pq.add("banana");
  System.out.println(pq.poll()+";"+pq.peek());
Ans:apple;banana
第二個:
import java.util.*;
public class Ex_TreeSet {
public static void main(String[] args){
HashSet hs = new HashSet();
hs.add("carrot");
hs.add("apple");
hs.add("banana");
TreeSet ts = new TreeSet(hs);
Iterator it = ts.iterator();
while(it.hasNext()){
String data = (String)it.next();
System.out.println(data + ",");
}
}
}
Ans:
apple,
banana,
carrot,

2011年5月27日 星期五

this 和 super 範例

讓大家對this 和 super更了解,所以我找了一個 範例。


class Father{
Father(char c){
System.out.println("c");
}

2011年5月26日 星期四

5月20號上課,234 ~242。

234 ~242

No.234
        這題目事實上還蠻好判斷的,第一先了解 import這個東西,在這個網頁可以清楚的解釋(http://www.javaworld.com.tw/jute/post/view?bid=29&id=9552&sty=1&tpg=1&age=-1)、另一個網頁上有講static import的規則(http://caterpillar.onlyfun.net/Gossip/JavaGossip-V1/StaticImport.htm)。我的判斷方法是這樣:這題目要 insert code class Demo裡面,因為是要使用static方法。所以先將答案 A C移除,但沒有static import這樣寫法 再來移除 B,D,G。現在就只剩下 E,F。但E. import Utils.Repetition.twice()→這個有問題,因為匯入並不可以把方法給匯入,import是匯入類別。這題最大的問題就是 twice()這個。答案只剩下 F

覆寫或稱覆蓋(override)結合super功能的範例

class CDogKind{
private String kind;
void SetKind(String k){
kind = k;
}

2011年5月16日 星期一

5月15號上課,216~233。

No.216(我遲到所以不知道老師怎麼解釋的)
這題還蠻簡單的,因為陣列會從0開始計算。
x{1,2,3,4,5}→如果娶x陣列的2的值→就是第三個位子的內容。
因此答案是  "3"

5月8號上課,201~215。

  • 201跟202可以對照(static)。前置遞增和後置遞增的問題。