mongod CRUD

来源:互联网 发布:昌吉有4g网络吗 编辑:程序博客网 时间:2024/05/22 03:51
一:插入数据1.直接插入db.inventory.insert(   {     item: "ABC1",     details: {        model: "14Q3",        manufacturer: "XYZ Company"     },     stock: [ { size: "S", qty: 25 }, { size: "M", qty: 50 } ],     category: "clothing"   })当数据库中如果没有inventory这个collection时,会自动创建它。2.通过数组插入var mydocuments =    [      {        item: "ABC2",        details: { model: "14Q3", manufacturer: "M1 Corporation" },        stock: [ { size: "M", qty: 50 } ],        category: "clothing"      },      {        item: "MNO2",        details: { model: "14Q3", manufacturer: "ABC Company" },        stock: [ { size: "S", qty: 5 }, { size: "M", qty: 5 }, { size: "L", qty: 1 } ],        category: "clothing"      },      {        item: "IJK2",        details: { model: "14Q2", manufacturer: "M5 Corporation" },        stock: [ { size: "S", qty: 5 }, { size: "L", qty: 1 } ],        category: "houseware"      }    ];db.inventory.insert( mydocuments );3.通过Bulk插入var bulk = db.inventory.initializeUnorderedBulkOp();bulk.insert(   {     item: "BE10",     details: { model: "14Q2", manufacturer: "XYZ Company" },     stock: [ { size: "L", qty: 5 } ],     category: "clothing"   });bulk.insert(   {     item: "ZYT1",     details: { model: "14Q1", manufacturer: "ABC Company"  },     stock: [ { size: "S", qty: 5 }, { size: "M", qty: 5 } ],     category: "houseware"   });bulk.execute();二:查询1.空查询(返回所有文档)db.inventory.find( {} )db.inventory.find()2.按照值查询db.inventory.find( { type: "snacks" } )3.in条件查询db.inventory.find( { type: { $in: [ 'food', 'snacks' ] } } )4.and条件查询db.inventory.find( { type: 'food', price: { $lt: 9.95 } } )5.or条件查询db.inventory.find(   {     $or: [ { qty: { $gt: 100 } }, { price: { $lt: 9.95 } } ]   })6.and & or 条件查询db.inventory.find(   {     type: 'food',     $or: [ { qty: { $gt: 100 } }, { price: { $lt: 9.95 } } ]   })7.有嵌套的查询db.inventory.find(    {      producer:        {          company: 'ABC123',          address: '123 Street'        }    })db.inventory.find( { 'producer.company': 'ABC123' } )8.数组查询db.inventory.find( { ratings: [ 5, 8, 9 ] } )db.inventory.find( { ratings: 5 } )db.inventory.find( { 'ratings.0': 5 } ) //数组的第一个值匹配5db.inventory.find( { ratings: { $elemMatch: { $gt: 5, $lt: 9 } } } ) //数组中至少一个元素 >>5 且 <<9db.inventory.find( { ratings: { $gt: 5, $lt: 9 } } ) //数组中有一个元素满足>>5 且 <<9 或者 有一个>>5,另一个<<99.嵌套的数组查询{  _id: 100,  type: "food",  item: "xyz",  qty: 25,  price: 2.5,  ratings: [ 5, 8, 9 ],  memos: [ { memo: "on time", by: "shipping" }, { memo: "approved", by: "billing" } ]}{  _id: 101,  type: "fruit",  item: "jkl",  qty: 10,  price: 4.25,  ratings: [ 5, 9 ],  memos: [ { memo: "on time", by: "payment" }, { memo: "delayed", by: "shipping" } ]}db.inventory.find( { 'memos.0.by': 'shipping' } )db.inventory.find( { 'memos.by': 'shipping' } )db.inventory.find(   {     memos:       {          $elemMatch:            {               memo: 'on time',               by: 'shipping'            }       }    })db.inventory.find(  {    'memos.memo': 'on time',    'memos.by': 'shipping'  })三:修改1.更新一个字段的值db.inventory.update(    { item: "MNO2" },    {      $set: {        category: "apparel",        details: { model: "14Q3", manufacturer: "XYZ Company" }      },      $currentDate: { lastModified: true }    })2.更新一个嵌入的字段db.inventory.update(  { item: "ABC1" },  { $set: { "details.model": "14Q2" } })3.更新多个文档db.inventory.update(   { category: "clothing" },   {     $set: { category: "apparel" },     $currentDate: { lastModified: true }   },   { multi: true })4.更新使用upsertdb.inventory.update(   { item: "TBD1" },   {     item: "TBD1",     details: { "model" : "14Q4", "manufacturer" : "ABC Company" },     stock: [ { "size" : "S", "qty" : 25 } ],     category: "houseware"   },   { upsert: true })四:删除1.删除所有文档db.inventory.remove({})2.删除匹配条件的文档db.inventory.remove( { type : "food" } )3.删除一个匹配条件的文档db.inventory.remove( { type : "food" }, 1 )

0 0