最近我开始开发一个应用程序,终于让我的node.js服务器与mongodb数据库通信。
我想插入一堆看起来像这样的JSON对象:
{
'Username': 'Bob',
'longitude': '58.3',
'latitude': '0.3'
}
如果将该对象插入到myCollection中,然后再次尝试使用用户名Bob插入对象,但坐标不同,我希望最新的“Username”为“Bob”的对象替换掉早期的对象。基本上,myCollection中只能有一个“Username”为“Bob”的对象。
如果这是关系型数据库,我会将Bob设置为主键之类的东西,但我想知道在mongoDb中做到这一点的最佳方法是什么?我应该使用update+upsert方法吗?我尝试了,但似乎没有起作用!
如果这听起来像个愚蠢的问题,请谅解,因为我还是个新手。
$set
可以包含'username':'Bob'
。除了_id
字段,我们可以修改任何其他字段。_id
字段是不可变的。是的,在这种情况下创建一个索引(即使是非唯一的)会有所帮助,因为我们正在通过username
查询集合。如果没有索引存在,它将进行完整的集合扫描。创建索引有助于更快地找到文档。如果需要,您可以指定unique
选项。 - Anand Jayabalandb.collection.ensureIndex()
现已弃用,并且是db.collection.createIndex()
的别名。 - Victor Zamanian$set
中吗? - WesternGun