在新集合中插入mongo db查询的结果

时间:2015-07-06 01:36:15

标签: mongodb

我想在新集合中存储mongo db查询的结果,但是我有这样的错误:未捕获的异常:无法保存DBQuery对象。

这是我的代码:



var com=db.comments.find({message: /http/ })   
db.com_filtre.insert(com);




变量com不是空的。当我尝试com.size()时:我有50个元素。

2 个答案:

答案 0 :(得分:3)

.find()的结果是“光标”而不是普通对象。您可以通过.toArray()

进行转换
var com=db.comments.find({message: /http/ }).toArray()   
db.com_filtre.insert(com);

或者获得singular object

var com=db.comments.findOne({message: /http/ })
db.com_filtre.insert(com);

这取决于您是否要插入“多个”匹配项或单个文档。

答案 1 :(得分:0)

find()方法将游标返回给resultSet。因此你需要从光标中获取文件,如下所示:

 var cur = db.comments.find({message: /http/});
 while( cur.hasNext() )
  {
    db.com_filtre.insert( cur.next() );
  }