JavaAPI 操作 java操作mongodb实例 如何删除字段值?

MongoDB对数组元素及内嵌文档进行增删改查操作_数据库技术_Linux公社-Linux系统门户网站
你好,游客
MongoDB对数组元素及内嵌文档进行增删改查操作
来源:Linux社区&
作者:Linux
比如我有一个user类,他包含一个标签属性,这个标签是一个数组,数组里面的元素是内嵌文档,格式如下:
{& & "_id" : "195861",& & "tags" : [& & & & & & {& & & & & & & & & & "tagId" : NumberLong(766),& & & & & & & & & & "optDate" : ISODate("T15:21:02.930Z"),& & & & & & & & & & "enable" : true& & & & & & },& & & & & & {& & & & & & & & & & "tagId" : NumberLong(778),& & & & & & & & & & "optDate" : ISODate("T15:21:02.930Z"),& & & & & & & & & & "enable" : true& & & & & & }& & ]
下面对这个文档中的tag进行增删该查操作,这里用到了spring mongodb 里面的MongoTemplate类。我这里把tags里的内嵌文档抽象成了Tag类。代码删除和修改本身就包含查询方法,所以没写查询方法
代码如下:
/**&* &* @author zhangdonghao&* &*/@Component("UserrTagServiceImpl")public class UserrTagServiceImpl implements UserrTagService {
/**&* Mongo DB Spring Template&*/@Resourceprotected MongoTemplate mongoTemplate =
public UserrTagServiceImpl() {
}/****给tags数组添加一个元素*/@Overridepublic Response&Integer& addTag(String id, Long tagId) {
& & try {& & & & Tag tag = new Tag(tagId);& & & & tag.setOptDate(new Date());& & & & tag.setEnable(true);& & & & Query query = Query.query(Criteria.where("_id").is(id));& & & & Update update = new Update();& & & & update.addToSet("tags", tag);& & & & mongoTemplate.upsert(query, update, User.class);& & } catch (Exception e) {& & & & return new Response&Integer&(0);& & }& & return new Response&Integer&(1);}
/****修改tags数组中内嵌文档指定一个元素的值*/@Overridepublic Response&Integer& disableTag(String id, Long tagId) {
& & try {& & & & Query query = Query.query(Criteria.where("_id").is(id)& & & & & & & & .and("tags.tagId").is(tagId));& & & & Update update = new Update();& & & & update.set("tags.$.enable", false);& & & & mongoTemplate.updateFirst(query, update, User.class);& & } catch (Exception e) {& & & & return new Response&Integer&(0);& & }& & return new Response&Integer&(1);}/****删除tags数组中指定的内嵌文档*/@Overridepublic Response&Integer& removeTag(String id, Long tagId) {
& & try {& & & & Query query = Query.query(Criteria.where("_id").is(id)& & & & & & & & .and("tags.tagId").is(tagId));& & & & Update update = new Update();& & & & update.unset("tags.$");& & & & mongoTemplate.updateFirst(query, update, User.class);& & } catch (Exception e) {& & & & return new Response&Integer&(0);& & }
& & return new Response&Integer&(1);}
public MongoTemplate getMongoTemplate() {& & return mongoT}
public void setMongoTemplate(MongoTemplate mongoTemplate) {& & this.mongoTemplate = mongoT}}
MongoDB 的详细介绍:MongoDB 的下载地址:
推荐阅读:
Java实现MongoDB中自增长字段
编译安装MongoDB
CentOS 编译安装 MongoDB与mongoDB的php扩展
CentOS 6 使用 yum 安装MongoDB及服务器端配置
13.04下安装MongoDB2.4.3
如何在MongoDB中建立新数据库和集合
MongoDB入门必读(概念与实战并重)
《MongoDB 权威指南》(MongoDB: The Definitive Guide)英文文字版[PDF]
相关资讯 & & &
& (07/20/:22)
   同意评论声明
   发表
尊重网上道德,遵守中华人民共和国的各项有关法律法规
承担一切因您的行为而直接或间接导致的民事或刑事法律责任
本站管理人员有权保留或删除其管辖留言中的任意内容
本站有权在网站内转载或引用您的评论
参与本评论即表明您已经阅读并接受上述条款为了账号安全,请及时绑定邮箱和手机
怎么使用nodejs 删除mongodb 字段为数组的 数据
{ _id: 584a94a6806d,
name: '军事',
{ updateAt: Fri Dec 09 :13 GMT+0800 (中国标准时间),
createAt: Fri Dec 09 :45 GMT+0800 (中国标准时间) },
movies: [ 584ab965bbc52117f4ccf761, 584a503c1fdf527 ] }上面movies字段的值为数组形式来存储
怎么使用nodejs删除movies字段的值
饱食终日,无所用心。
徒增其岁,岂枉活哉?
首先过去对应的Schema对象:
xxSchema.findOne(query,filter).
然后对对象进行一次更新操作。
你还没有登录,请先登录或注册慕课网帐号
3235人关注
7823人关注
Copyright (C)
All Rights Reserved | 京ICP备 号-22016年11月 Java大版内专家分月排行榜第三2016年6月 Java大版内专家分月排行榜第三2016年4月 Java大版内专家分月排行榜第三
匿名用户不能发表回复!|
每天回帖即可获得10分可用分!小技巧:
你还可以输入10000个字符
(Ctrl+Enter)
请遵守CSDN,不得违反国家法律法规。
转载文章请注明出自“CSDN(www.csdn.net)”。如是商业用途请联系原作者。求助啊!tp下,mongodb如何查询后只返回某个字段值? - ThinkPHP框架
如题,我看驱动里好像也没这个定义?
ThinkPHP 是一个免费开源的,快速、简单的面向对象的 轻量级PHP开发框架 ,创立于2006年初,遵循Apache2开源协议发布,是为了敏捷WEB应用开发和简化企业应用开发而诞生的。ThinkPHP从诞生以来一直秉承简洁实用的设计原则,在保持出色的性能和至简的代码的同时,也注重易用性。并且拥有众多的原创功能和特性,在社区团队的积极参与下,在易用性、扩展性和性能方面不断优化和改进,已经成长为国内最领先和最具影响力的WEB应用开发框架,众多的典型案例确保可以稳定用于商业以及门户级的开发。MongoDB JAVA API插入和删除示例_mongodb数据库_ThinkSAAS
MongoDB JAVA API插入和删除示例
MongoDB JAVA API插入和删除示例
* MongoDBTest
* MongoDB插入和删除数据示例
package com.labci.mongodb.
import java.net.UnknownHostE
import java.util.ArrayL
import java.util.I
import java.util.L
import com.mongodb.BasicDBO
import com.mongodb.DB;
import com.mongodb.DBC
import com.mongodb.DBC
import com.mongodb.DBO
import com.mongodb.M
import com.mongodb.MongoE
* @author Bill Tu(tujiyue/iwtxokhtd)
* May 22, :56 PM]
public class MongoDBInsertDataTest {
private static final String HOST = "192.168.1.86";
private static final int PORT = 27017;
private static final String USER = "iwtxokhtd";
private static final String PASSWORD = "123456";
private static final String DB_NAME = "test";
private static final String COLLECTION = "insert_test";
private static Mongo conn=
private static DB myDB=
private static DBCollection myCollection=
static{
try {
conn=new Mongo(HOST,PORT);//建立数据库连接
myDB=conn.getDB(DB_NAME);//使用test数据库
boolean loginSuccess=myDB.authenticate(USER, PASSWORD.toCharArray());//用户验证
if(loginSuccess){
myCollection=myDB.getCollection(COLLECTION);
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (MongoException e) {
e.printStackTrace();
* 使用save()方法保存数据
* @param collection “表”名
private static void saveData(DBCollection collection){
DBObject saveData=new BasicDBObject();
saveData.put("userName", "iwtxokhtd");
saveData.put("age", "26");
saveData.put("gender", "m");
DBObject infoData=new BasicDBObject();
infoData.put("height", 16.3);
infoData.put("weight", 22);
saveData.put("info", infoData);
collection.save(saveData);
* 使用insert()方法保存数据
* @param collection "表"名
private static void insertData(DBCollection collection){
DBObject insertData=new BasicDBObject();
insertData.put("name", "pig");
insertData.put("headers", 2);
insertData.put("legs", 4);
//insert(DBObject obj)
collection.insert(insertData);
DBObject insertDataFox=new BasicDBObject();
insertDataFox.put("name", "fox");
insertDataFox.put("headers", 1);
insertDataFox.put("legs", 4);
DBObject insertDataTiger=new BasicDBObject();
insertDataTiger.put("name", "tiger");
insertDataTiger.put("headers", 1);
insertDataTiger.put("legs", 3);
List&DBObject& insertDataList=new ArrayList&DBObject&();
insertDataList.add(insertDataFox);
insertDataList.add(insertDataTiger);
//insert(List&DBObject& list)
collection.insert(insertDataList);
* 取得查询结果集
* @param collection
* @return
private static DBCursor getResult(DBCollection collection){
return collection.find();
* 打印结果数据
* @param description 结果数据相关描述
* @param recordResult 结果集
private static void printData(String description,DBCursor recordResult){
System.out.println(description);
for(Iterator&DBObject& iter=recordResult.iterator();iter.hasNext();){
System.out.println(iter.next());
* @param args
public static void main(String[] args) {
//插入数据前若有记录才先删除所有记录
if(myCollection.find().count()&0){
myCollection.remove(new BasicDBObject());
//再插入数据
saveData(myCollection);
insertData(myCollection);
//再查询数据
printData("插入数据后的所有结果记录为:",getResult(myCollection));
//再删除指定的数据
DBObject deletePig=new BasicDBObject();
deletePig.put("name", "pig");
myCollection.remove(deletePig);
printData("删除pig后的所有结果记录为:",getResult(myCollection));
结果:
插入数据后的所有结果记录为:
{ "_id" : { "$oid" : "4dd8c190b2d57bb3ba03af38"} , "userName" : "iwtxokhtd" , "age" : "26" , "gender" : "m" , "info" : { "height" : 16.3 , "weight" : 22}}
{ "_id" : { "$oid" : "4dd8c190b2d57bb3ba03af39"} , "name" : "pig" , "headers" : 2 , "legs" : 4}
{ "_id" : { "$oid" : "4dd8c190b2d57bb3ba03af3a"} , "name" : "fox" , "headers" : 1 , "legs" : 4}
{ "_id" : { "$oid" : "4dd8c190b2d57bb3ba03af3b"} , "name" : "tiger" , "headers" : 1 , "legs" : 3}
删除pig后的所有结果记录为:
{ "_id" : { "$oid" : "4dd8c190b2d57bb3ba03af38"} , "userName" : "iwtxokhtd" , "age" : "26" , "gender" : "m" , "info" : { "height" : 16.3 , "weight" : 22}}
{ "_id" : { "$oid" : "4dd8c190b2d57bb3ba03af3a"} , "name" : "fox" , "headers" : 1 , "legs" : 4}
{ "_id" : { "$oid" : "4dd8c190b2d57bb3ba03af3b"} , "name" : "tiger" , "headers" : 1 , "legs" : 3}
PHP开发框架
开发工具/编程工具
服务器环境
ThinkSAAS商业授权:
ThinkSAAS为用户提供有偿个性定制开发服务
ThinkSAAS将为商业授权用户提供二次开发指导和技术支持
让ThinkSAAS更好,把建议拿来。
开发客服微信

我要回帖

更多关于 java 操作mongodb 的文章

 

随机推荐