MongoDB tags 嵌入 post

xiaoronglv · 2012年11月01日 · 最后由 Rei 回复于 2012年11月01日 · 2520 次阅读

如果 tag(4d3ed089fb60ab534684b7e0)已经嵌入到 post(4d3ed089fb60ab534684b7e9),其他 post 是不是就无法嵌入这个 tag 了?

model

class Post
  include Mongoid::Document
  field :title, :type =>  String
  field :body, :type =>  String
  field :tags, :type =>  Array
  embeds_many :tags
end
class Tag
  include Mongoid::Document  
  field :tag, :type =>  String
  field :type, :type =>  String
  embedded_in :post
end

storage

{
  "_id" : ObjectId("4d3ed089fb60ab534684b7e9"),
  "tags" : [
    {
      "_id" : ObjectId("4d3ed089fb60ab534684b7e0"),
      "name" : "Violator",
    }
  ]
}
  1. 可以
  2. 直接 "tags": ["Violator"] 不就好了嘛

#1 楼 @Rei 那 model 该如何写呢。


看了 code_campo,topic 与 tags 的 model 中没有声明关系。

#2 楼 @xiaoronglv Tag model 是拿来储存统计信息的,平时 Topic 加 Tag 和读取 Tag 都是字符串,不用调用 Tag model。

field :tags, :type => Array, :default => []

需要 登录 后方可回复, 如果你还没有账号请 注册新账号