MongoDB操作之遍歷集和條件查詢操作

chenfeng發表於2016-01-26

連線MongoDB:

C:\Users\duansf>mongo
MongoDB shell version: 2.6.6
connecting to: test
> use test
switched to db test
> show tables
articles
books
system.indexes
test
things
users
 遍歷集例子:
方法1:
> var cursor = db.things.find();
> while (cursor.hasNext()) { print(tojson(cursor.next())); }
{ "_id" : ObjectId("5652d71a1524dc14663060e8"), "x" : 4, "j" : 2 }
{ "_id" : ObjectId("5652d71a1524dc14663060e9"), "x" : 4, "j" : 3 }
{ "_id" : ObjectId("5652d71a1524dc14663060ea"), "x" : 4, "j" : 4 }
{ "_id" : ObjectId("5652d71a1524dc14663060eb"), "x" : 4, "j" : 5 }
{ "_id" : ObjectId("5652d71a1524dc14663060ec"), "x" : 4, "j" : 6 }
{ "_id" : ObjectId("5652d71a1524dc14663060ed"), "x" : 4, "j" : 7 }
{ "_id" : ObjectId("5652d71a1524dc14663060ee"), "x" : 4, "j" : 8 }
{ "_id" : ObjectId("5652d71a1524dc14663060ef"), "x" : 4, "j" : 9 }
>
方法2:
> db.things.find().forEach( function(x){print(tojson(x));});
{ "_id" : ObjectId("5652d71a1524dc14663060e8"), "x" : 4, "j" : 2 }
{ "_id" : ObjectId("5652d71a1524dc14663060e9"), "x" : 4, "j" : 3 }
{ "_id" : ObjectId("5652d71a1524dc14663060ea"), "x" : 4, "j" : 4 }
{ "_id" : ObjectId("5652d71a1524dc14663060eb"), "x" : 4, "j" : 5 }
{ "_id" : ObjectId("5652d71a1524dc14663060ec"), "x" : 4, "j" : 6 }
{ "_id" : ObjectId("5652d71a1524dc14663060ed"), "x" : 4, "j" : 7 }
{ "_id" : ObjectId("5652d71a1524dc14663060ee"), "x" : 4, "j" : 8 }
{ "_id" : ObjectId("5652d71a1524dc14663060ef"), "x" : 4, "j" : 9 }
>
獲取結果集:
> var cursor = db.things.find();
> print (tojson(cursor[4]));
{ "_id" : ObjectId("5652d71a1524dc14663060ec"), "x" : 4, "j" : 6 }
> var arr = db.things.find().toArray();
> arr[5];
{ "_id" : ObjectId("5652d71a1524dc14663060ed"), "x" : 4, "j" : 7 }
>

條件查詢:
> db.books.find({name:"18book"}).forEach(function(x) { print(tojson(x));})
{
        "_id" : ObjectId("5650645db9bb2b1fd5ba07b5"),
        "number" : 18,
        "name" : "18book"
}
{
        "_id" : ObjectId("5652d7411524dc1466306102"),
        "number" : 18,
        "name" : "18book"
}
>

等價於:

SQL:SELECT * FROM books WHERE name="18book";

> db.things.find({x:4}, {j:true}).forEach(function(x) { print(tojson(x));});
{ "_id" : ObjectId("5652d71a1524dc14663060e8"), "j" : 2 }
{ "_id" : ObjectId("5652d71a1524dc14663060e9"), "j" : 3 }
{ "_id" : ObjectId("5652d71a1524dc14663060ea"), "j" : 4 }
{ "_id" : ObjectId("5652d71a1524dc14663060eb"), "j" : 5 }
{ "_id" : ObjectId("5652d71a1524dc14663060ec"), "j" : 6 }
{ "_id" : ObjectId("5652d71a1524dc14663060ed"), "j" : 7 }
{ "_id" : ObjectId("5652d71a1524dc14663060ee"), "j" : 8 }
{ "_id" : ObjectId("5652d71a1524dc14663060ef"), "j" : 9 }
>

等價於:

SQL:SELECT j FROM things WHERE x=4

findOne用法:
> var mongo = db.books.findOne({name:"18book"});
>
>
> print(tojson(mongo));
{
        "_id" : ObjectId("5650645db9bb2b1fd5ba07b5"),
        "number" : 18,
        "name" : "18book"
}


limit用法:
> db.things.find().limit(3);
{ "_id" : ObjectId("5652d71a1524dc14663060e8"), "x" : 4, "j" : 2 }
{ "_id" : ObjectId("5652d71a1524dc14663060e9"), "x" : 4, "j" : 3 }
{ "_id" : ObjectId("5652d71a1524dc14663060ea"), "x" : 4, "j" : 4 }
>
等價於:
SQL:SELECT j from things WHERE rownum< 4;



來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/15498/viewspace-1982493/,如需轉載,請註明出處,否則將追究法律責任。

相關文章