如何使用MongoDB Java更新文档并设置字段的值?

在sql中,语句如下:UPDATE table SET table.password = pPassword WHERE(table._id = pid);

这对于Java和MongoDB如何工作?

    import React,{ Component } from 'react'

const optionsData = [
    'Select','Option1','Option2','Option3'
]

class CustomSelect extends Component {
    constructor(props) {
        super(props);
        this.state = {
            placeholder:'',id:'',onChange:'',label:'',value:'',validationmsg:'',disabled:''
        };
    }
    onFocus = () => {          
        this.setState({    
            onFocus: true
        });
    }
    // Fix so when you dont make a choice it still lose focus
    onBlur = () => {          
        this.setState({    
            onFocus: false
        });
    }
    onChange = (e) => {          
        this.setState({    
            onFocus: true,value: e.target.value
        });
    }    

    getclass = () => {
        if (this.state.onFocus === true)
            return "in-focus"
        else if (!this.state.value === '' | !this.state.value === 'Select')
            return "not-empty"
        else if (this.state.value === '')
            return "empty"
        else
            return "";
    }

    render() {
        let inputFocus = this.getclass();
        return (  
            <div classname={`form-item ${inputFocus}`}>
                {this.state.label && 
                    <label htmlFor={this.state.id}>
                        {this.state.label}
                    </label>
                }
                <select 
                    id={this.state.id} 
                    placeholder={this.state.placeholder} 
                    onFocus={this.onFocus}
                    onBlur={this.onBlur}
                    onChange={this.onChange} 
                    disabled={this.state.disabled} 
                    value={this.state.value ? this.state.value : ''}
                > 
                    {optionsData.map(option => 
                        <option 
                            key={option}
                            value={option}
                        >
                            {option}
                        </option>
                    )} 
                </select>
                {/* {this.props.validationmsg && <span classname="validation-message">{this.props.validationmsg}</span>} */}
            </div>
        )
    }
}

export default CustomSelect

现有:

function(){
BasicDBObject cBsonFilter = new BasicDBObject();
cBsonFilter.append(COL_id,new BasicDBObject("$eq",pid)); // COL_id = _id // pid = is the right id as String

Document cBsonUpdate = new Document();
cBsonUpdate.put(COL_password,pPassword); // COL_password = password // pPassword ist the password_hash as String

// cMongoDatabase = working connection
User.doFindAndUpdateone(cMongoDatabase,User.class.getSimpleName(),cBsonFilter,cBsonUpdate);
}

public static UpdateResult doFindAndUpdateone(MongoDatabase cMongoDatabase,String pNameCollection,BasicDBObject pFilter,Document pUpdate) {
    return cMongoDatabase.getcollection(pNameCollection).updateone(pFilter,pUpdate);
}

收件人:我要输入ID并修改密码。我不想替换整个文档。

{
        "_id" : ObjectId("5ed4b1b45c603146a9abc7d2"),"Display" : null,"Name" : null,"birthdate" : null,"image" : null,"email" : "example@gmail.com","_lc" : ISODate("2020-06-01T07:44:06.176Z"),"lastuserip" : "0:0:0:0:0:0:0:1","userlaw" : 1,"validationhash" : null,"registered" : ISODate("2020-06-01T07:43:48.843Z"),"termsofservice" : null,"password" : null
}
iCMS 回答:如何使用MongoDB Java更新文档并设置字段的值?

解决方案:

解决方案是将BasicDBObjects嵌套在BasicDBObjects中。

[Unknown - No Python thread state]

有一些例子:

new BasicDBObjects("_id",new BasicDBObjects("key","value"));
本文链接:https://www.f2er.com/2229990.html

大家都在问