mongo查询语句,修改表collection字段,更新某个字段内容,删除一行记录

模糊查询

sql:

   select * from user where name like "%花%";

mongo:

   db.getCollection("XXXXX").find({"name":/花/});

xx%

sql:

  select * from user where name like "花%";

mongo:

   db.getCollection("XXXXX").find({"name":/^花/});

不区分大小写

   db.getCollection("XXXXX").find({"name":/a/i});

MongoDB AND 条件

以下实例通过 by 和 title 键来查询 菜鸟教程 中 MongoDB 教程 的数据

> db.col.find({"by":"菜鸟教程", "title":"MongoDB 教程"}).pretty()
{
        "_id" : ObjectId("56063f17ade2f21f36b03133"),
        "title" : "MongoDB 教程",
        "description" : "MongoDB 是一个 Nosql 数据库",
        "by" : "菜鸟教程",
        "url" : "http://www.runoob.com",
        "tags" : [
                "mongodb",
                "database",
                "NoSQL"
        ],
        "likes" : 100
}

MongoDB OR 条件

>db.col.find({$or:[{"by":"菜鸟教程"},{"title": "MongoDB 教程"}]}).pretty()
{
        "_id" : ObjectId("56063f17ade2f21f36b03133"),
        "title" : "MongoDB 教程",
        "description" : "MongoDB 是一个 Nosql 数据库",
        "by" : "菜鸟教程",
        "url" : "http://www.runoob.com",
        "tags" : [
                "mongodb",
                "database",
                "NoSQL"
        ],
        "likes" : 100
}

mongo in和notin查询

db.getCollection("A表").find(
	{    
		id:{ $in:[1,2]}
	}
)

#改成 id:{ $nin:[1,2]} 就是查询A表中id字段不等于1和不等于2的记录

demo

{"filename":/test001_TEST_test/}

类似sql中的
select * from xxx where filename like "test001_TEST_test%"
mongo查询语句,修改表collection字段,更新某个字段内容,删除一行记录_第1张图片

MongoDB新增字段

demo1:

如果我需要在表market_entity中新增字段adj_close_price,并且给所有的记录都设置默认值0.0
在mongo shell中执行以下命令

db.getCollection('market_entity').update({},{$set:{adj_close_price:'0.0'}},{multi:true})

demo2:

db.getCollection('userinfo').update(
    // query 
    { 
    },
    
    // update 
    {
        $set:{last_time:new Date()}
    },
    
    // options 
    {
        "multi" : true,  // update only one document 
        "upsert" : false  // insert a new document, if no existing document match the query 
    }
);

参数说明:

  • query : update的查询条件,类似sql update查询内where后面的。
  • update : update的对象和一些更新的操作符(如 , , ,inc…)等,也可以理解为sql update查询内set后面的
  • upsert : 可选,这个参数的意思是,如果不存在update的记录,是否插入objNew,true为插入,默认是false,不插入。
  • multi : 可选,mongodb 默认是false,只更新找到的第一条记录,如果这个参数为true,就把按条件查出来多条记录全部更新。
  • writeConcern :可选,抛出异常的级别。

简单点的demo:
添加一个字段. table 代表表名 , 添加字段 content,字符串类型。

db.getCollection("XXXXX").update({}, {$set: {content:""}}, {multi: true})

删除一个字段

db.getCollection("XXXXX").update({},{$unset:{content:""}},false, true)

更新mongo集合中的某个字段
这里其实就是更新字段
修改多条就在后面加上{multi:true}
第一个{'title':'MongoDB 教程'}就是sql更新时的where条件
把符合条件的记录的title字段set为字符串"MongoDB"

{$set:{'title':'MongoDB'}
db.getCollection("XXXXX").update({'title':'MongoDB 教程'},{$set:{'title':'MongoDB'}},{multi:true})

删除一行记录

在这里插入图片描述
如果存在多条符合条件的记录,只删除一行

db.getCollection("scheduler").deleteOne({"_id":ObjectId("5eacee0a0fb3176903965d37")})

删除scheduler集合中的所有记录

db.getCollection("scheduler").deleteMany({})

删除集合中符合条件的所有记录
demo所示就是删除scheduler集合中所有status =A的所有记录

db.getCollection("scheduler").deleteMany({ status : "A" })

你可能感兴趣的:(Mysql)