mongodb 增刪改查

(一)增:

   db.collname.insert({name:"user1",age:"20"})  添加一條常規數據,

       添加的數字是以json格式的鍵值對,後面的值需要添加雙引號或引號

   db.collname.insert({time:new Date()})   mongodb支持js,可以在query中添加js語句

   db.collname.insert({name:["user1","user2","user3"]}); 添加一條有數組的數據

   db.collname.insert({name:{first:"user1",middle :"user2",last:"user3"}}) 添加一條有內嵌            文檔的數據,(mongodb中一行數據也稱爲文檔(document))

   自定義文檔插入:

> doc={

... name:"user",

... age:"20",

... sexy:"man"

... }

{ "name" : "user", "age" : "20", "sexy" : "man" }

> db.c1.insert(doc);


(二)查

   查看collection(c1)所有的數據

   db.c1.find()

   查看用戶名爲smith的數據

   db.c1.find(name:"smith")

   查看除了age字段以外的所有數據

   db.c1.find({},{age:0})

   查看用戶名爲smith,不包括age字段的其他字段

   db.c1.find({name:"smith"},{age:0})

   只查看用戶名爲smith的age字段

   db.c1.find({name:"smith"},{age:1})

   查看年齡大於20的數據

   db.c1.find({age:{ $gt:20 }})

   查看年齡小於20的數據

   db.c1.find({age:{ $lt:20 }})

   查看年齡大於等於20的數據

   db.c1.find({age:{ $gte:20 }})

   查看年齡小於等於20的數據

   db.c1.find({age:{ $lte:20 }})

   查看年齡不等於20的數據

   db.c1.find({age:{ $ne:20 }})

   查看同時有singging和football愛好的數據

   db.c1.find({hobby:{$all:[”singging",“football”]}});($all 必須都包括,$in只需要包            括其 中一個)                                                                                  

   查看有singging或是football愛好的數據

   db.c1.find({hobby:{$in:[”singging",“football”]}})

   查看沒有singging或是football愛好的數據

   db.c1.find({hobby:{$nin:[”singging",“football”]}})

   查看存在某個字段的數據:並只輸出五條數據

   db.c1.find({name:{$exists:true }}).limit(5);

   取模操作,查看年齡尾數爲一的數據

   db.c1.find({age:{$mod:[10,1]}});

   查看符合至少一個要求的數據 $or

   db.c1.find({$or:[{age:20},{sexy:"man"});

   查看一個要求都不符合的數據 $nor

   db.c1.find({$nor:[{age:20},{sexy:"man"});

   查看數組長度等於3的數據(設a爲數組)

   db.c1.find({a:{$size:3}})

   檢索name屬性是以u開頭,4結尾的所有用戶(可使用正則表達式)

    db.c1.find({name:/u.*4$/i})

   排序//1表示升序,-1表示降序

   db.c1.find().sort({_id: 1})

   查下唯一值

   db.c1.distinct(“age")

   分頁查詢:

   db.c1.find().skip(20).limit(8);

   或是:db.c1.find({},{},8,20);

   查詢記錄數:

   db.c1.find().count();

   查詢某document沒有數值,或不存在:

   db.c1.find(name:null)

   查詢中$slice的用法

    db.posts.find({}, {comments:{$slice: 5}}) // 前5條評論

    db.posts.find({}, {comments:{$slice: -5}}) //後5條評論

    db.posts.find({}, {comments:{$slice: [20, 10]}}) // skip 20, limit 10

    db.posts.find({}, {comments:{$slice: [-20, 10]}}) // 20 from end, limit 10


(三)刪

   刪除c1(collection)下的所有數據

   db.c1.remove()

   刪除id爲10的數據

   db.c1.remove({_id:10})

   建議:刪除操作的時候,儘量用_id作爲條件

   某些情況下,當你在對一個記錄執行remove操作的時候,可能會有update操作在這個記錄上,這樣就可能刪除不掉這個記錄,如果你覺得這不盡人意,那麼你可以在remove操作的時候加上$atomic:         db.videos.remove( { rating : { $lt : 3.0 }, $atomic : true } )


(四)改

    語法 db.collection.update( criteria, objNew, upsert, multi )

    Criteria:用於設置查詢條件的對象

    Objnew:用於設置更新內容的對象

    Upsert:如果記錄已經存在,更新它,否則新增一個記錄

    Multi:如果有多個符合條件的記錄,全部更新

    注意:默認情況下,只會更新第一個符合條件的記錄


    如果存在更新它,如果不存在,新增記錄  db.mycollection.save(x);

    把id爲0的age改成20

    db.user.update({_id:0},{$set:{age:20}});

    把id爲0的age加上20

    db.user.update({_id:0},{$inc:{age:20}});

    把id爲0的age減去20

    db.user.update({_id:0},{$inc:{age:-20}});

    把id爲0的sex字段刪除

    db.user.update({_id:0},{$unset:{sex:1}});

    修改id爲0的hobby字段(前提hobby是數組,或是不存在,否則會報錯)

    db.user.update({_id:0},{$push:{hobby:'football'}});

    { $pushAll : { field : value_array } } 用法跟上面一樣

    往id爲0的hobby字段添加一個數據(前提hobby是數組,或是不存在,否則會報錯)  

    db.user.update({_id:0},{$addToSet:{hobby:'football'}});

    刪除id爲0的hobby字段的最後一個數據(前提hobby是數組,或是不存在,否則會報錯

    db.user.update({_id:0},{$pop:{hobby:'football'}});

    刪除id爲0的hobby字段中符合條件的數據(前提hobby是數組,或是不存在,否則會報錯

    db.user.update({_id:0},{$pull:{aihao:'bike'}});

    把id爲0的數據中name字段名改爲username

   db.user.update({_id:0},{$rename:{'name':'username'}});

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章