我这样问是因为当我编写单元测试时,我想删除测试数据库,插入一些初始化数据,并在测试中判断mongodb中的数据.所以我需要对mongodb进行原始操作.

如何在mongoose 身上做到这一点?我现在能做的就是创建连接,而不是在mongoose的官方网站上找到任何文档.

 var mongoose = require('mongoose');
 mongoose.connect('mongo://localhost/shuzu_test');

 // get the connection
 var conn = mongoose.connection;

但如何:

  1. 删除数据库
  2. 创建一个集合
  3. 向集合中写入一些数据
  4. 查询集合
  5. 放弃Collection

推荐答案

请参阅文档中的"驱动程序访问"部分:

基本上,你可以通过执行YourModel.collection来访问node-mongodb-native驱动程序,然后你可以执行insertremovedrop或任何你需要的操作.

这里没有文档,但通过这种方法,您可以访问这里的所有内容:

Edit:

在您的情况下,您可能希望跳过在测试套件中使用mongoose,直接使用node-mongodb-native,甚至编写一个可以在测试开始前运行的简单mongodb shell script.

Mongodb相关问答推荐

MongoDB通过查找具有多个数组的对象进行聚合

MongoDB中的字符串聚合

如何在Mongo中查找数组中的特定对象

联接不返回具有ObjectId和非ObjectId的结果

MongoDB 在一个聚合中包含多个组

更快地识别嵌套对象数组中具有重复字段的文档

Golang 无法在 MongoDB 中创建文档

使用 homebrew 和 Xcode 8.1.1 安装 Mongodb 失败

如何在 mongodb 中设置整数的默认值?

MongoDB:按标签获取文档

在 Heroku 上使用 Node 读取、写入和存储 JSON

什么 Javascript 库可以针对对象判断类似 MongoDB 的查询谓词?

从 mongodb 中的副本配置重新开始

在 mongodb 的一次更新调用中推送到两个单独的数组

在 mongodb 中查找字段的所有非不同值

mongodb-nodejs-driver,DeprecationWarning:collection.count 已弃用

使用 MongoDB 进行嵌套分组

Mongo聚合框架,排序然后分组不起作用

错误:需要数据和盐参数

MongoDb:聚合 $lookup 过滤外部文档