mongodb 根據主鍵id 刪除資料
命令列連結
[[email protected] ~]$ mongo
MongoDB shell version: 1.8.1
connecting to: test 預設是test db
>
> use logs //切換db 為logs
switched to db logs
>
由於mongodb 開啟了驗證授權 不經過驗證是無法執行的,比如我們查一下 db的狀態
> db.stats()
{
"assertion" : "unauthorized db:logs lock type:-1 client:127.0.0.1",
"assertionCode" : 10057,
"errmsg" : "db assertion failure",
"ok" : 0
}
>
系統提示當前預設的帳號沒有對此db的操作許可權。所以接下來我們要授權和切換mongodb的登入帳號,授權和登入是同一時間完成的,命令如下
> db.auth('hyuser','hylog');
1 //此處系統返回狀態為1.說明授權通過 併成功切換成使用者 hyuser。 否則為0
>
現在我們再查詢db狀態 是ok的。如下。
> db.stats()
{
"db" : "logs",
"collections" : 5,
"objects" : 129858100,
"avgObjSize" : 231.78011497164982,
"dataSize" : 30098525348,
"storageSize" : 33372166496,
"numExtents" : 50,
"indexes" : 12,
"indexSize" : 75387239696,
"fileSize" : 133012914176,
"ok" : 1
}
>
接下來要做的就是刪除那些髒資料,因為那些髒資料無明顯特徵和定位,還好開發初期在頁面上對每條資料都取出了 唯一的id hidden在web頁面,通過檢視原始碼我可以清楚的找到這條資料的唯一標識。
刪除 id為4f29e4860b2e2ecb9910e304 的資料,操作
> db.logs.remove({'_id':ObjectId('4f29e4860b2e2ecb9910e304')})
>
成功刪除。
不少剛接觸mongodb的朋友 在刪除的時候會用到這種錯誤的方式刪除
> db.logs.remove(‘_id’,'dfsdfsdfsdfsdfsdfsdfsdfsd');
這中方式是無法刪除的,因為 mongodb的唯一id 不是作為一個字串來儲存的。,這個值通常是一個BSON物件id,因此,這個id對於集合中的每個成員都是唯一的,如果使用者插入一個document沒有提供一個id,資料庫將自動生成一個id,並存儲在_id欄位。
一個BSON ObjectID是由12個位元組組成:4位元組時間+3位元組機器id+2位元組程序id+3位元組的數字
{ "_id" : ObjectId("4c691e72ed2a47b462dfa806") }
相關推薦
mongodb 根據主鍵id 刪除資料
命令列連結 [[email protected] ~]$ mongo MongoDB shell version: 1.8.1 connecting to: test 預設是test db > > use logs //切換db 為logs s
批量修改資料 要根據主鍵Id 批量修改欄位Value的值 且 value 的值是不一樣。
批量修改資料 要根據主鍵Id 批量修改欄位Value的值 且 value 的值是不一樣。 UPDATE gold_chip set chip_money_win=(case when chip_id = 1 then 1  
【TP5】根據主鍵ID進行多條資料查詢
author:咔咔 wechat:fangkangfk 資料庫設計 案例: 需求:根據專題ID查詢廣告圖ID,然後拿著這個ID去banner模型裡邊進行獲取資料 分解:這個業務需求需要做倆件事,第一件事就是根據專題i
mybatis插入自增主鍵ID的資料後返回自增的ID
開發中碰到使用者註冊的功能需要用到使用者ID,但是使用者ID是資料庫自增生成的,這種情況上網查詢後使用下面的方式配置mybatis的insert語句可以解決 <insert id="insert" keyProperty="id" useGeneratedKeys=
刪除資料表中的資料 讓主鍵id 從1開始自增
一、方法1 清空表資料並且將主鍵自增長從1開始 步驟①先清空表資料 步驟②在把表的自增長設定為1 Sql語句: DELETE FROM grade; ALTER TABLE grade AUTO_INCREMENT=1; 二、方法2
mybatis 插入資料返回主鍵id寫法
1、batis檔案中寫法: <!--插入資料,返回主鍵的insert寫法 --> <insert id="insert_A" parameterType="Map" useGeneratedKeys="t
Navicat操作Oracle、JPA註解實現Oracle插入資料 主鍵ID自增
首先在Oracle表中實現ID自增,其次在JPA中實現。 Oracle資料庫不存在主鍵自增選項,現在想實現ID自增。 部落格連結:oracle 實現插入自增列 開啟Navicat,定位到自己建立的表。 一、 建立序列 其他-序列&
(六)Mybatis插入資料返回主鍵id
整個demo放在Github上,地址:【https://github.com/Damaer/Mybatis-Learning】,專案是mybatis-05-CRUD,下載下來只需要maven環境以及mysql環境就可以跑起來,所以不貼全部程式碼。 我們知道很多時候我們有
mybatis 事務下獲取insert資料的主鍵[id]的值
現在有一個需求:表A 表B的資料,需要在同一個事務中操作。表A bid儲存的是表B的id。 表A:id[主鍵] , name , bid[表B的主鍵] 表B:id[主鍵] , name 就是先
Mybatis中,當插入資料後,返回最新主鍵id的幾種方法,及具體用法
一、前言 資料庫操作怎能少了INSERT操作呢?下面記錄MyBatis關於INSERT操作的筆記,以便日後查閱。二、 insert元素 屬性詳解 其
用註解的方式實現Mybatis插入資料時返回自增的主鍵Id
一、背景 我們在資料庫表設計的時候,一般都會在表中設計一個自增的id作為表的主鍵。這個id也會關聯到其它表的外來鍵。 這就要求往表中插入資料時能返回表的自增id,用這個ID去給關聯表的欄位賦值。下面講一下如何通過註解的方式實現插入資料時返回自增Id。 二、
Oracle12C--主外來鍵約束刪除資料問題--級聯操作(九)
知識點的梳理: on delete cascade:當主表資料刪除時,對應的子表資料同時刪除; on delete set null:當主表資料刪除時,對應的子表資料設定為null; 問題1:刪除
Oracle 在插入資料後獲取主鍵ID的解決辦法
Mybatis批量插入返回自增主鍵: 對於支援生成自增主鍵的資料庫:useGenerateKeys和keyProperty 不支援生成自增主鍵的資料庫:<selectKey> 1、Oracle資料庫中建立自增序列 create sequence ARCHI
mybatis獲取插入資料時自動生成的主鍵id
mapper檔案: void insert(Map<String, Object> params); mybatis的xml如下: <insert id="insert" parameterType="java.util.Map" useGen
[轉帖]如何準確高效的獲取資料庫新插入資料的主鍵id
原文地址 例如我們新建了一張表UserInformation,欄位如下Id,為主鍵,自增,其它欄位Name,Pwd,Email 然後我們來執行一個新增插入操作: insert into UserInformation(Name,Pwd,Email) values('小明','123','111') 我
Mybatis插入資料後返回主鍵id
有時候使用mybatis插入資料後,需要用到記錄在資料庫中的自增id,可以利用keyProperty來返回,賦值給實體類中的指定欄位。 單條記錄插入並返回 First, if your database supports auto-generated key fields (e.g. MySQL and SQ
Java程式碼TkMyBatis通用Mapper中新增資料時同時獲取自增主鍵ID,與適用uuid 做主鍵時獲取 id
一 . MyBatis mapper.xml檔案中在xml 1. 加入 這句 :useGeneratedKeys="true" keyProperty="ID" keyProperty="資料庫中的主鍵欄位名對應的實體類欄位名" ;【填實體類欄位
mybatis mysql 插入物件返回資料主鍵id
RuleTypeMapper.xml 檔案原始碼 <insert id="insertRuleType" useGeneratedKeys="true" keyProperty="id" parameterType="com.haier.gsp.core.mo
MySql自增主鍵id插入失敗或刪除後,再插入亂序問題
在對資料庫進行操作的時候,資料庫的表裡的id是自增的,當資料被刪除或者新增或者插入失敗時,id會一直增上去,變得很亂,不會按照順序,下面是兩種解決辦法: alter table tablename drop column id; alter table tablenam
巧妙解決mysql刪除或新增記錄時,對自增主鍵ID進行重新排序的問題
一、問題描述 表一 id 姓名 1 張三 2 李四 表二(當刪除第一條記錄時,顯示為表二) id 姓名 2 李四 表三(如何使表顯示為表三,即實現對錶中的id欄位重新排序) id 姓名 1 李四 二、問題解決 原理:重新定義一個變數用來顯示錶中的序列號 echo "<