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});
以下实例通过 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
}
>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
}
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%"
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
}
);
参数说明:
简单点的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" })