2015-03-31 24 views

回答

0

這被稱爲projection,並告訴哪些字段顯示。例如,在這裏您只顯示title。這多少有點像​​如果不指定投影它將返回的一切,這是接近select * from mycol;

_id始終顯示,除非你有_id: 0明確地將其隱藏。另一件事是你不能混合0和1(_id除外)。但還有一次 - read FAQ

+0

謝謝您的回答。 – 2015-04-20 10:40:49

1

第一個大括號作爲where條件MySql的

看看這個鏈接 - SQL to MongoDB Mapping Chart

MySQL的

SELECT user_id, status FROM users WHERE status = "A" 

MongoDB的

db.users.find(
    { status: "A" }, 
    { user_id: 1, status: 1, _id: 0 } 
) 
+0

與我的回答有什麼不同? – 2015-03-31 22:40:31

+0

你完全相反 – 2015-04-01 06:13:14

+0

你能解釋它是如何完全不同的? – 2015-04-01 06:52:37

4

這是一個空的查詢,在限制邊界意義上。所以

db.mycol.find({},{"title":1,_id:0}) 

基本上會轉化爲

給我的稱號,但不是_id(因爲你會在默認情況下這樣做)在當前數據庫中mycol集合中的所有文件。

假設你想要所有標題由Alan Turing編寫。所以,你可以修改查詢部分是這樣的:

db.mycol.find({"author":"Alan Turing"},{"title":1,_id:0}) 

一般情況下,MongoDB的查找操作可以這樣

db.collection.find(query,projection) 

描述更詳細的信息,你可能需要閱讀find's documentation

+0

謝謝你ansawer。 – 2015-04-15 07:17:25

0

你應該參考這個鏈接,更好的解釋 http://docs.mongodb.org/manual/reference/operator/projection/positional/

首先,投影不會返回它找到它告訴蒙戈什麼返回的第一個結果。

.findOne(query)將LIMIT結果賦給一個或查找(query).limit(1)也會做同樣的事情。

你說你試圖「獲取所有」你的數據。

一個標準的查找類型查詢會讓你開始...

find({mongo:query},{mongo:projection}) 

但結果限制從蒙戈外殼*光標

+1

感謝您的解決方案。 – 2015-04-14 11:55:38