MongoDB查詢語句簡要分析
find() 語句
啟動MongoDB服務,因為mongoDB並不隨系統一起啟動,可能以下命令運行後會等一小段的時間才會啟動完畢。
sudo service mongodb start
進入MongoDB命令行操作界面,在命令行中敲exit可以退出
mongo
find() 用法:db.COLLECTION_NAME.find()
> use post #創建post數據庫,並向其中插入文檔
> db.post.insert([
{
title: 'MongoDB Overview',
description: 'MongoDB is no sql database',
by: 'shiyanlou',
url: 'http://www.shiyanlou.com',
tags: ['mongodb', 'database', 'NoSQL'],
likes: 100
},
{
title: 'NoSQL Database',
description: "NoSQL database doesn't have tables",
by: 'shiyanlou',
url: 'http://www.shiyanlou.com',
tags: ['mongodb', 'database', 'NoSQL'],
likes: 20,
comments: [
{
user:'user1',
message: 'My first comment',
dateCreated: new Date(2013,11,10,2,35),
like: 0
}
]
}
])
查詢數據,不加任何參數默認返回所有數據記錄:
db.post.find()
pretty() 語句
pretty() 可以使查詢輸出的結果更美觀。
db.post.find().pretty()
MongoDB中的 AND
當 find() 中傳入多個鍵值對時,MongoDB就會將其作為 AND 查詢處理。用法:db.mycol.find({ key1: value1, key2: value2 }).pretty()
db.post.find({"by":"shiyanlou","title": "MongoDB Overview"}).pretty()
MongoDB中的 OR
MongoDB中,OR 查詢語句以 $or 作為關鍵詞,用法如下:
> db.post.find(
{
$or: [
{key1: value1}, {key2:value2}
]
}
).pretty()
同時使用 AND 和 OR
> db.post.find({
"likes": {$gt:10},
$or: [
{"by": "shiyanlou"},
{"title": "MongoDB Overview"}
]
}).pretty() #<span style="color: rgb(51, 51, 51); font-family: 'Microsoft Yahei'; font-size: 16px; line-height: 25.59375px;">{\$gt:10} 表示大於10,另外,\$lt 表示小於,\$lte 表示小於等於,\$gte 表示大於等於,\$ne 表示不等於。</span>