Mongodb 包含$each和$position的等效Spring数据mongo模板查询
我有这个查询,希望使用SpringMongo模板来启动这个查询。但我不确定如何使用Spring数据处理mongo的$each和$positionMongodb 包含$each和$position的等效Spring数据mongo模板查询,mongodb,mongodb-query,spring-data-mongodb,Mongodb,Mongodb Query,Spring Data Mongodb,我有这个查询,希望使用SpringMongo模板来启动这个查询。但我不确定如何使用Spring数据处理mongo的$each和$position db.data.update( //Query {"where":"condition"}, //Update { //Set some values $set:{"aaa":402.7,"bbbb":6523297.00}, //Push some value in
db.data.update(
//Query
{"where":"condition"},
//Update
{
//Set some values
$set:{"aaa":402.7,"bbbb":6523297.00},
//Push some value into an inside array at the first place
$push: {
YYYYYY: { $each: [{
"time" : 1234,
"data" : [
396,
403.35,
386.5,
401.15,
8370865,
3320159538.15
]
} ],
//
$position: 0 }
}
},
{
//Update or insert
upsert: true
}
)
目前我有这样的更新它在最后一个职位
Update update = new Update();
update.set("aaa", 402.7);
update.set("bbbb", 6523297.00);
update.push("YYYYYY", data.getYYYYYY().get(0));
Query query = new Query(Criteria.where("where").is(condition));
mongoOperations.findAndModify(query, update, FindAndModifyOptions.options().upsert(true),DailyData.class);
我知道有一种方法可以使用push builder使用push
PushOperatorBuilder pushBuilder=update.push(“YYYYYY”);
每个(data.getyyyyy().get(0))
但是它没有位置属性可以提及,这是因为1.7%的spring数据来自源
- 强制在给定的{@literal位置}添加值。
*
*@param位置需要大于或等于零。
*@返回
*@自1.7
*/
公共推送操作员生成器位置(内部位置){
if(位置<0){ 抛出新的IllegalArgumentException(“位置必须大于或等于零”); } this.modifiers.addModifier(新位置修饰符(位置)); 归还这个; }
if (position < 0) {
throw new IllegalArgumentException("Position must be greater than or equal to zero.");
}
this.modifiers.addModifier(new PositionModifier(position));
return this;
}