2013-08-08 6 views
3

Я массив хранится в моем документе:

"properties" : [ 
      { 
        "createdate" : 1375981035, 
        "updated" : 1375981035 
      }, 
      { 
        "accessdate" : 1375981035, 
        "updated" : 1375981035 
      }, 
      { 
        "code" : "4ffa04fe06000000", 
        "updated" : 1375981038 
      } 
    ], 

обновление выполняется дезактивировать свойство 'Код': db.coll.update({'properties.code':'4ffa04fe06000000'},{'$unset':{'properties.$':1}});

Мой результат:

"properties" : [ 
      { 
        "createdate" : 1375981035, 
        "updated" : 1375981035 
      }, 
      { 
        "accessdate" : 1375981035, 
        "updated" : 1375981035 
      }, 
      null 
    ], 

Но я ожидайте этого:

"properties" : [ 
      { 
        "createdate" : 1375981035, 
        "updated" : 1375981035 
      }, 
      { 
        "accessdate" : 1375981035, 
        "updated" : 1375981035 
      } 
    ], 

Что можно сделать лучше, без этого нулевого ключа? Лучше?

+1

'db.coll.update ({}, { '$ тянуть': { 'Свойства': { 'Код':» 4ffa04fe06000000 '}}}); ' Прост достаточно. Это работает. –

+0

Да, он будет делать это, иначе он должен был бы переустановить индексы массивов, которые были выбраны в качестве плохой идеи в то время. – Sammaye

ответ

Смежные вопросы