搜尋

首頁  >  問答  >  主體

mongodb - pymongo裡,dict儲存在list內,如何根據key-value值刪除或更新該dict?

{
    "title": "hello world",
    "comments": [
                    {"id": 1, "text": "text 1"},
                    {"id": 2, "text": "text 2"},
                    {"id": 3, "text": "text 3"}, 
                    ...
                ],
    "author": "",
    "views": 1000,
}

假設我現在知道某個 comment 的 id=2,想刪除 comments 中 id=2 的字典,也就是 {"id": 2, "text": "text 2"} 這條數據,應該怎樣寫呢?

如果是更新 id=2text 的內容,又該如何寫呢?

阿神阿神2800 天前773

全部回覆(2)我來回復

  • PHP中文网

    PHP中文网2017-04-21 11:19:36

    這個可以使用mongodb的陣列定位器,詳細:
    http://www.co-ding.com/?p=274

    回覆
    0
  • 怪我咯

    怪我咯2017-04-21 11:19:36

    從mongodb命令列可以這樣刪除(pymongo基本上格式一樣了,沒測試):

    db.posts.update({'_id': xxxx}, {'$pull': { 'comments': {'id': 2} }})

    更新的話 寫起來看起來就沒有這麼直白了,for遍歷一下吧。 。
    //或是先刪了再加進去?這樣順序可能不滿足要求了。 。

    回覆
    0
  • 取消回覆