sql >> Databasteknik >  >> NoSQL >> MongoDB

Mongodb lägger till ett nytt fält i ett befintligt dokument, med specifik position

Här är vad du kan göra, ta först dokumentet som ett dict , då kommer vi att bestämma indexet för age och sedan kommer vi att göra lite indexering, se nedan:

>>> dic = { "name": "user", "age" : "21", "designation": "Developer" }
>>> dic['university'] = 'ASU'
>>> dic
{'name': 'user', 'age': '21', 'designation': 'Developer', 'university': 'ASU'}

Lade till universitetsfältet, nu kommer vi att göra lite utbyte genom att använda dic.items() .

>>> i = list(dic.items())
>>> i
[('name', 'user'), ('age', '21'), ('designation', 'Developer'), ('university', 'ASU')]
#now we will acquire index of 'age' field
>>> index = [j for j in range(len(i)) if 'age' in i[j]][0] 
#it will return list of single val from which we will index the val for simplicity using [0]
>>> index
1
#insert the last element ('university') below the age field, so we need to increment the index
>>> i.insert(index+1,i[-1])
# then we will create dictionary by removing the last element which is already inserted below age
>>> dict(i[:-1])
{'name': 'user', 'age': '21', 'university': 'ASU', 'designation': 'Developer'}



  1. Mongoose anropar till geoNear med GeoJSON-punkter eftersom frågeparametrar inte fungerar

  2. Node.js lyssnar på MongoDB change

  3. MongoSkin Kan inte läsa egenskapen "apply" för undefined

  4. Distribuerar Meteor-appen till sin egen server