插入文档 - Collection.insert
使用集合对象的insert(doc,[callback])方法向集合中插入数据(JSON对象)。下面 的示例创建persons集合并插入一个新的文档:
var demo = new Mongo.Collection("persons");
demo.insert({name:"Jason",age:28});
≡ 使用方法
insert()方法的主要参数如下:
- doc - 用来指定作为数据的JSON对象
- callback - 用来指定一个回调函数function(error,result){...},当插入完成时 callback参数指定的回调函数将被调用
在后端调用该方法时,如果不指定callback参数,将阻塞执行直至插入完成,或者在发生 错误时抛出异常;前端不支持同步阻塞方式的执行,因此如果不设置callback参数,将 无法捕捉错误和执行结果。
不过,无论是否使用callback参数,insert()方法都将返回新插入文档的id编号。
≡ 使用场景
对于一对前后端的同名数据集,如果在前端执行的insert()会自动同步到后端(通过 RPC机制),而后端执行的insert()会自动同步到前端(通过pub/sub机制)。因此,如果 有多个前端连接到同一个后端,那么在其中任何一个前端执行的插入操作,将实时同步到 所有的前端和后端。
在下面的聊天室应用中,任何一个前端插入的消息,会实时出现在其他前端:
执行以下命令复位test应用、删除源文件:
~/test$ meteor reset↵
~/test$ rm -rf \*↵
执行以下命令拷贝col-insert示例代码、运行并查看运行结果:
~/test$ cp ~/demos/col-insert/* .↵
~/test$ meteor↵
理解并修改col-insert示例代码,通过练习掌握Collection对象的insert方法在 前端和后端的差异之处。