• 分类:【MongoDd
  • 浏览【465】
  • 评论【0】
  • 更新【2020-6-19 15:57:09】

在go mongo中查询是使用的是bson.M类型的条件,但是直接使用时无法动态添加条件,只能初始化赋值,bson.M其实就是map类型,只能使用someMap["someKey"]="someValue" 的形式添加,这样的话只能是用if判断字段的值来决定是否添加map key/value,写起来比较繁琐。还有一种是利用结构体转换为bson.M来实现。 //构造一个查询结构体 search := User{ ID: id, Name: name, Age: age, } //构造一个条件变量 condition := bson.M{}

阅读全文
  • 分类:【Golang
  • 浏览【487】
  • 评论【0】
  • 更新【2020-4-06 23:14:10】

在之前mgo是一个使用广泛的mongodb驱动器,不过从2018年开始已不再维护,虽然觉得怪可惜的,但也不推荐使用了,毕竟mongodb本身一直在迭代,如果驱动器不更新后续也没法使用。 详细说明见仓库:https://github.com/go-mgo/mgo 而mongodb提供了官方驱动,目前能找到的中文文档大多比较旧了,推荐直接看官方文档,有完整的操作手册:https://www.mongodb.com/blog/search/golang 本文也不想做一次搬运工,毕竟也不能随时保持更新,还是直接看官方文档比较好。下面列出一些主要的文章链接: Stack Overflow Resear

阅读全文
  • 分类:【MongoDd
  • 浏览【469】
  • 评论【0】
  • 更新【2020-4-04 09:58:04】

使用mongodb数据库时有这样的场景,使用可视化工具登陆了某个数据库blogs,然后又创建了数据库website,给website数据库添加用户hp_website db.createUser( {user: "hp_website",pwd: "xxxxxx",roles: [ { role: "userAdmin", db: "website" },{ role: "dbAdmin", db: "website" },{ role: "dbOwner"

阅读全文
  • 分类:【MongoDd
  • 浏览【1402】
  • 评论【0】
  • 更新【2018-9-30 16:20:22】

最近七牛云存储要收回测试域名,但是我的博客中图片使用了这些测试域名,所以要替换掉,避免图片不可访问。在文档中没有找到可以直接替换的方法,所以就使用了mongodb的forEach循环替换。 首先用正则查询法查出使用了测试域名的文档,然后forEach循环,在每个循环中使用js的正则替换函数将域名替换掉,最后再保存该文档即可。 db.getCollection('blogs').find({content:{$regex:/hopefully.qiniudn.com/}}).forEach(function(item){ item.content = item.content.repla

阅读全文
  • 分类:【MongoDd
  • 浏览【1163】
  • 评论【0】
  • 更新【2018-9-06 17:21:31】

使用mongoose建立了连接以后,通过model查询数据,如:testModel.find(),既不报错又不返回数据。 const mongoose = require('mongoose'); mongoose.connect('mongodb://localhost/my_database'); 使用mongoose.connect连接产生在mongoose.connection上,使用mongoose.createConnection是反回一个连接对象,建立model的时候需要使用这个连接才有效,此时使用mongoose.model是无效的。 const conn = mongoo

阅读全文
  • 分类:【linux
  • 浏览【1085】
  • 评论【0】
  • 更新【2018-6-14 13:26:49】

修改terminal apt-get update更新软件源,安装zsh,设置默认terminal为zsh,chsh -s /usr/bin/zsh。非root用户需要在root权限下修改/etc/passwd文件才能实现。 安装git apt-get install git nginx设置: sudo /etc/init.d/nginx restart # or start, stop 或 sudo service nginx restart # or start, stop 有时候我们改了配置文件只是要让配置生效,这个时候不必重启,只要重新加载配置文件即可。sudo nginx

阅读全文
  • 分类:【Nodejs
  • 浏览【2247】
  • 评论【0】
  • 更新【2017-8-23 11:20:12】

Unhandled rejection CastError: Cast to ObjectId failed for value "catalog" at path "_id" for model "Blog" at MongooseError.CastError (e:\workspace\yuedun_ts\node_modules\mongoose\lib\error\cast.js:27:11) at ObjectId.cast (e:\workspace\yuedun_ts\node_modules\mong

阅读全文
  • 分类:【MongoDd
  • 浏览【2124】
  • 评论【0】
  • 更新【2017-8-18 16:18:36】

`open()` is deprecated in mongoose >= 4.11.0, use `openUri()` instead, or set the `useMongoClient` option if using `connect()` or `createConnection()`. See http://mongoosejs.com/docs/connections.html#use-mongo-client Db.prototype.authenticate method will no longer be available in the next major

阅读全文
  • 分类:【MongoDd
  • 浏览【3738】
  • 评论【0】
  • 更新【2017-6-10 12:44:55】

export var CommentSchema: Schema = new Schema({ Id: String, content: String, status: { type: Boolean, default: true } }, { timestamps: true}); 添加{ timestamps: true}选项即可,如果需要自定义属性名称可以直接指定: { timestamps: {createdAt:'created_at', updatedAt:'updated_at'}}

阅读全文
  • 分类:【工具使用
  • 浏览【1914】
  • 评论【0】
  • 更新【2017-5-19 16:02:30】

RockMongo是一个PHP5写的MongoDB管理工具。 鉴于百度bce的mongodb数据使用了RockMongo来管理数据,就以此来说明。 查询操作 点击某个collection后的默认画面: 查询界面很简单,关键是怎么写查询语句? 点击文本可以查看所有数据字段,查询title为“测试”文档: array( 'title' => '测试' ) 模糊查询: array( 'title'=> new MongoRegex("/测试/i") ) 字段名要加引号,中间使用=>而不是使用:分割,需要查询的值也需要注意,字符串加引号,数字不加,

阅读全文