重新学习mongodb:构建查询

findone和find:

find返回一个光标。findone返回一个文件;

忽略、限制和排序查询选项:

db.reviews.find().skip().limit(12);

加入排序功能:

db.reviews.find().sort({'_helpful_votes':-1}).limit(12)

不返回整个文件,使用投影返回限制字段:

db.users.findOne({username: 'kbanker',
  hashed_password: 'bd1cfa194c3a603e7186780824b04419'},
  {_id: 1})

所有:

// Product page
db.products.findOne({'_id': ObjectId("4c4b1476238d3b4dd5003981")})

// Displaying a product page.
//<start id="product-page"/>  
product  = db.products.findOne({'slug': 'wheel-barrow-9092'})
category = db.categories.findOne({'_id': product['main_cat_id']})
reviews  = db.reviews.find({'product_id': product['_id']})
//<end id="product-page"/>  

//<start id="product-page-find-one"/>  
db.products.find({'slug': 'wheel-barrow-9092'}).limit(1)
//<end id="product-page-find-one"/>  

//<start id="product-page-review-skip-limit"/>  
reviews = db.reviews.find({'product_id': product['_id']}).skip(0).limit(12)
//<end id="product-page-review-skip-limit"/>  

//<start id="product-page-review-skip-limit-sort"/>  
reviews = db.reviews.find({'product_id': product['_id']}).
                           skip(0).limit(12).sort({helpful_votes: -1})
//<end id="product-page-review-skip-limit-sort"/>  


//<start id="product-page-final"/>  
var page_number = 10
product  = db.products.findOne({'slug': 'wheel-barrow-9092'})
category = db.categories.findOne({'_id': product['main_cat_id']})
reviews_count = db.reviews.count({'product_id': product['_id']})
reviews = db.reviews.find({'product_id': product['_id']}).
                         skip((page_number - 1) * 12).
                         limit(12).
                         sort({'helpful_votes': -1})
//<end id="product-page-final"/>  

//<start id="product-listing-page"/>  
category = db.categories.findOne({'slug': 'outdoors'})
siblings = db.categories.find({'parent_id': category['_id']})
products = db.products.find({'category_id': category['_id']}).
                           skip((page_number - 1) * 12).
                           limit(12).
                           sort({helpful_votes: -1})
//<end id="product-listing-page"/>  

// Displaying the category hierarchy
//<start id="category-page-root"/>  
categories = db.categories.find({'parent_id': null})
//<end id="category-page-root"/>  

mongodb支持使用正则表达式查询:

db.users.find({'last_name':/^Ba/});

查询特定的范围:

db.users.find({'addresses.zip':{'$gt':10019,'$lt':10040}})


db.users.findOne({username: 'kbanker',
  hashed_password: 'bd1cfa194c3a603e7186780824b04419'})

db.users.findOne({username: 'kbanker',
  hashed_password: 'bd1cfa194c3a603e7186780824b04419'},
  {_id: 1})

db.users.find({last_name: 'Banker'})

db.users.find({last_name: /^Ba/})

db.users.find({'addresses.zip': {$gte: 10019, $lt: 10040}})

db.orders.find({'line_items.sku': "9092"}) 

db.orders.find({'line_items.sku': "9092",
    'purchase_date': {$gte: new Date(2009, 1, 1)}})

db.orders.ensureIndex({'line_items.sku': 1, 'purchase_date': 1})

user_ids = db.orders.find({'line_items.sku': "9092",
  purchase_date: {'$gt': new Date(2009, 0, 1)}},
  {user_id: 1, _id: 0})
users = db.users.find({_id: {$in: user_ids}})

查询选择:

设置运算

布尔运算符:

查找关键字文档:

db.products.find({'details.color':{$exists:false}})//没有这个字段的数据

匹配子文档

关键字的顺序非常重要。

数组:

JavaScript查询运算符:

  正则表达式:

查询选择:

映射:

跳过和限制:

skip , limit

猜你喜欢

转载自blog.csdn.net/qq_15140841/article/details/83175788