1、mongodb 怎么备份多个集合
单个来collection备份:
mongoexport -h dbhost -d dbname -c collectionname -f collectionKey -o dbdirectory
-h: MongoDB所在服务自器地址
-d: 需要恢复的数据库实例
-c: 需要恢复的集合
-f: 需要导出的字段(省略为所有字段)
-o: 表示导出的文件名
2、MongoDB如何处理多对多关系
如果是一对多,我知道可以用嵌套,但不知道如何处理多对多的关系,请指教。【来自山贼】问题解答:如何处理好多对多的关系可谓是NoSQL的精髓所在。理论上,可以在一个集合中完成存储,不过实际上这样的情况非常罕见。这是由于查询的多样性所导致的,若是只有一种类型的查询,则这种多对多的关系放在一个良好设计的集合中,虽然会有大量的冗余,但是效率一定是最高的。如何设计这种数据库的关键就是看你有多少种查询,每一种的频率是多少,使用的其他要求是什么样的。对于不同的查询,同样的数据库设计的性能也是大不一样。还有一点,一般不要拆成三个集合,这是传统的关系型数据库的思维方式。都NoSQL了一定要换个角度思考问题。常见的情况就是拆成两个集合,然后有一部分冗余,对最常用的查询做一个索引。这个还得多多实践。【Mars】1、Team里面存一个 teammates: [] 存 User 的 _id 或其它索引值,这样就知道一个 team 有哪些 user2、User可以反查 Team 的 find({teammates: _id})源码天空
与关系数据库类似,分开两个文档存储,
然后其中一个文档的ID列表存在另一个文档中【jarod】
3、mongodb可以一个用户可以操作多个数据库吗
3.x版本以后在创建(修改)用户的时候赋予该用户多库的操作权限即可,2.6之前貌似不可以,除了admin下的用户。
4、mongodb可以写多个group吗
一个聚合操作里可以有多个group操作
5、mongodb一次能插入多少数据
insert()方法:
下面是在inventory集合中插入一个三个字段的文档:
复制代码代码如下:
db.inventory.insert( { _id: 10, type: "misc", item: "card", qty: 15 } )
在实示例中,文档有一个用户指定的值为10的_id字段,这个值必须在inventory集合中唯一。
update()方法:
调用update()方法使用upsert标志创建一个新文档当没有匹配查询条件的文档时。下面的例子当inventory集合中没有包含{type:"books",item:"journal"}的文档时创建一个新文档:
复制代码代码如下:
db.inventory.update(
{ type: "book", item : "journal" },
{ $set : { qty: 10 } },
{ upsert :true }
)
MongoDB添加_id字段和分配一个唯一的ObjectId作为它的值。新文档包含来自查询<query>条件的item和type字段,和来自更新<update>参数的qty字段:
复制代码代码如下:
{ "_id" : ObjectId("51e8636953dbe31d5f34a38a"), "item" : "journal", "qty" : 10, "type" : "book" }
save()方法:
使用save()方法插入一个文档,通过该方法保存一个不包含_id字段的文档或者包含_id字段但该字段值不存在集合中的文档。下面的示例创建一个新的文档在inventory集合:
复制代码代码如下:
db.inventory.save( { type: "book", item: "notebook", qty: 40 } )
MongoDB添加_id字段和分配一个唯一的ObjectId作为它的值。
复制代码代码如下:
{ "_id" : ObjectId("51e866e48737f72b32ae4fbc"), "type" : "book", "item" : "notebook", "qty" : 40 }
6、mongodb 数据库能支持多少
配置如下:
verbose:日志信息冗余。默认false。提高内部报告标准输出或记录到logpath配置专的日志文件中。要启用属verbose或启用verbosity 用vvvv参数,如:
verbose = true
vvvv = true
ps:启动verbose冗长信息,它的级别有 vv~vvvvv,v越多级别越高,在日志文件中记录的信息越详细。
port:端口。默认27017,MongoDB的默认服务TCP端口,监听客户端连接。要是端口设置小于1024,比如1021,则需要root权限启 动,不能用mongodb帐号启动,(普通帐号即使是27017也起不来)否则报错:[mongo --port=1021 连接]
ERROR: listen(): bind() failed errno:13 Permission denied for socket: 127.0.0.1:1021
7、如何更新mongoDB 数组里对象的多个数值
不如post里面中保存用来户id,源comments里面也保存用户的id,这样就不用一个用户的信息改了,需要在多个地方也修改相应的信息,当然这种方式需要你在比如查询comments信息的时候,需要再获取用户的信息,需要你自己取舍了
更新的话,
1
db.posts.update({userId:'xxxxxx'},{$set:{"head" : "/images/portrait-1490968786371.jpg"}})//类似这样子的
8、mongodb 可以建多少数据库
1)列出当前的数据库
MongoDB shell version: 1.8.1
connecting to: test
> show dbs -www.linuxidc.com-
admin 0.03125GB
local (empty)
可以使用show dbs来列出当前有多少个数据库,上面看到的是有两个,分别是admin和local。
2) 定义新的数据库名
我们通过使用“use new-databasename”的语法去使用一个新的数据库,注意,即使你的数据库还没建立起来,依然可以这样使用,因为mongodb会在真正插入了数据后,才会真正建立起来。
>use mkyongdb
switched to db mkyongdb
> show dbs
admin 0.03125GB
local (empty)
注意,在use mkyongdb后,mkyongdb实际上还没真正建立起来,只是表明目前是在使用mkyongdb了。
3)保存数据
定义一个collection,名为“users”,然后插入数据,如下:
> db.users.save( {username:"mkyong"} )
> db.users.find()
{ "_id" : ObjectId("4dbac7bfea37068bd0987573"), "username" : "mkyong" }
>
> show dbs -www.linuxidc.com-
admin 0.03125GB
local (empty)
mkyongdb 0.03125GB
可以看到,用db.users.find()可以找出已插入的数据。这个时候,名为“users”的collection已经建立起来了,同时,数据库mkyongdb也建立起来了。
9、在window环境下mongodb怎么同时添加多条数据
windows怎么用mongodb导入数据 MongoDB是目前非常流行的一种NoSQL数据库,其灵活的存储方式备受回开发人员青睐。答本文就介绍一下如何安装并设置成Windows服务的方法。 1、安装MongoDB Windows版本的MongoDB无需安装,只要解压就能使用了。
10、一个页面怎么获取 MongoDB 多个集合的数据
可以直接将两个集合查出来传版到权View里啊
collectionA.find().toArray(function(errA, recordsA){
collectionB.find().toArray(function(errB, recordsB){
res.render("view", {
collectionA: recordsA,
collectionB: recordsB
});
});
});