按照条件查询 并按条件排序
updateMany
根据条件删除clearType字段,IDEA测试报错。但是navicat测试通过,可以删除!
- 与MySQL类比
MySQL |
MongoDB |
数据库 |
数据库 |
表 |
集合 |
行 |
文档 |
记录 |
字段 |
- 基础操作
//按照条件查询 并按条件排序
db.v1.find({"imei":"7809000247","serverDate": { $gte: "20201112000000" , $lt:"20201112235959"}}).limit(2000).sort({
"serverDate":1
});
//更新clearType的值为0
db.v1.updateMany(
{"imei":"7809000247","serverDate": { $gt: "20201112000000" , $lt:"20201112235959"}},
{ $set: { clearType: 0}}
);
//根据条件删除clearType字段,IDEA测试报错。但是navicat测试通过,可以删除!(有{multi:true} 参数才能全部删除,不然只能删除匹配的第一个字段)
db.v1.update({"imei":"7809000247","serverDate": { $gt: "20201112000000" , $lt:"20201112235959"}},{$unset:{"cleanType":""}},{multi:true})
- MongoDB批量更新
MongoCollection<org.bson.Document> collection = mongoTemplate.getCollection("集合名");
List<WriteModel<Document>> writes = new ArrayList<>();
writes.add(
new UpdateOneModel<>(
new Document("_id", new ObjectId("_ID")),
new Document("$set", new Document("cleanType", 2))// 更新值
)
);
writes.add(
new InsertOneModel<Document>(
new Document("_id", 5)
.append("char", "Taeln")
.append("class", "fighter")
.append("lvl", 4)
)
);
writes.add(new DeleteOneModel<Document>(new Document("char", "Brisbane")));
writes.add(
new ReplaceOneModel<Document>(
new Document("char", "Meldane"),
new Document("char", "Tanys")
.append("class", "oracle")
.append("lvl", 4)
)
);
BulkWriteResult bulkWriteResult = collection.bulkWrite(writes);
System.out.println(bulkWriteResult.toString());