在mongodb中测试文档时遇到困难。所有这些都在Meteor.isServer
中完成(Meteor 1.1.0.2; MongoDB shell版本:2.6.7)。这是文档(“_id”是由mongo自动生成的,在这里由我缩短):
{ "_id" : "YLzNTSqP", "0" : { "name": "Goodrich", "id" : "c5216", "phone" : "555-1212", "address" : "500 Wave Road, City, St, 12345" }}
我的插入就是这样,因为mongodb插入“_id”和“0”并使我的插入成为“0”的对象:
db_insert = { "name": "Goodrich", "id" : "c5216", "phone" : "555-1212", "address" : "500 Wave Road, City, St, 12345" };
我正在尝试搜索“id”(而非“_id”)以查看该文档是否存在于该集合中。
我还在“id”上创建了一个独特的索引,但没有帮助:
db.collectionName.ensureIndex({id:1},{unique:true})
我尝试了很多变种(我使用了var作为id,以及我知道在数据库中的值的硬编码)。
collectionName.find({id:"c5216"})
collectionName.find({"id":"c5216"})
collectionName.findOne({"id":"c5216"})
等。结果通常为[object Object]
我已经尝试将其设置为var,然后
if(var){
或if(var.size() > 0)
或if(var.count())
会抛出错误,因为它是一个对象而不是数组,if(var.hasNext())
也无效。
我不应该在插入之前测试存在,因为我不想要重复的记录/文件。我是否应该插入(因为“id”上有一个唯一的索引,mongo将删除当前文档并插入代码所在的文件?其中任何一个都有性能损失吗?