更新嵌套对象中的键

时间:2018-07-11 07:56:12

标签: mongodb

我有一个文档,其中另一个文档作为“ basicInfo”字段的值:

{
  "personId": "5b45b3700fdd1a14c9f",
  "basicInfo": {
    "name": "dave",
    "age": 25,
    "personAddress": {
      "city": "los angeles",
      "street": "hollywood",
      "streetNumber": 150,
      "zipCode": 90210
    },
    "active": true
  }
}

im尝试仅使用以下方式更新人员姓名:

db.people.findAndModify({
    query: { "personId" : "5b45b3700fdd1a14c9f" },
    update: {"$set":{"basicInfo":{"name":"new name"}}}
})

这正在替换基本信息...我想创建一种方法,该方法将发送带有用户要更改的字段的json,仅这些字段将被更改。.

1 个答案:

答案 0 :(得分:0)

您需要使用.dot表示法来更新嵌套的java.lang.RuntimeException: Method putInt in android.os.BaseBundle not mocked. See http://g.co/androidstudio/not-mocked for details. at android.os.BaseBundle.putInt(BaseBundle.java) at com.fs.wfm.ui.EventPlannerListFragment.onItemClicked(EventPlannerListFragment.kt:90) at com.fs.wfm.ui.EventPlannerListFragmentTest.onItemClicked(EventPlannerListFragmentTest.kt:40) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50) at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12) at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47) at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17) at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26) at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57) at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290) at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71) at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288) at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58) at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268) at org.junit.runners.ParentRunner.run(ParentRunner.java:363) at org.mockito.internal.runners.DefaultInternalRunner$1.run(DefaultInternalRunner.java:68) at org.mockito.internal.runners.DefaultInternalRunner.run(DefaultInternalRunner.java:74)  字段

name
相关问题